首页 > 解决方案 > 如何在 Docker 重启策略旁边使用 bash 命令?

问题描述

在 ROS 项目中,我有以下用于运行 docker 容器的 bash 脚本:

#!/bin/bash

source ~/catkin_ws/devel/setup.bash
rosnode kill some_ros_node
roslaunch supporting_ros_package launch_file.launch &

docker run -it \
    --restart=always \
    --privileged \
    --net=host \
    my_image:latest \
    /bin/bash -c\
    "
     roslaunch my_package my_launch_file.launch
    "
export containerId=$(docker ps -l -q)

但是,我想要发生的是,每次容器重新启动时(尤其是在机器启动时),命令之前的 bash 命令docker run也会在主机上重新运行(不在容器内)。

我怎样才能做到这一点?

标签: bashdockerrosdocker-run

解决方案


我可以想到以下几种方法:

  1. 将此脚本添加到系统服务。请参阅有关添加系统服务的答案:请参阅此
  2. 将此脚本添加到另一个也设置为始终重新启动的容器中...但是将 docker 套接字安装到另一个容器中,如下所示:请参阅

推荐阅读