如何将 bash 命令与 Docker 重启策略一起使用?

How to use bash commands alongside Docker restart policies?

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

#!/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)

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

我怎样才能做到这一点?

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

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