我想编写一个可以在生产服务器上运行的Bash脚本。它将从Docker中心下载Docker镜像,启动它并保持生成的容器运行。在容器内部,我使用Supervisor来保持服务器和数据库的运行,并且Supervisor重新启动在容器内死亡的任何进程。
但是容器本身呢?有关如何确保容器在主机重启后启动的任何建议/最佳实践,并且如果容器以某种方式崩溃,容器会重新启动吗?可以向docker run
提供--restart
flag。因此,为了确保容器启动并保持运行,所需的只是将此行添加到/etc/rc.local
?
docker run -d --restart=always --name=container-name image-name command
右? (而且我不需要使用nohup
或任何&
。或者这种方法存在一些问题,我忽略了,或者我还有其他什么问题。丢失?
例如,我不需要以某种方式确保docker服务本身保持运行状态?我可以相信它还活着吗?
(相关问题,但仅限于保持docker运行,而不是在重启时启动它:making sure a given docker container is running)
我的主机和容器操作系统:Ubuntu 14.04。
答案 0 :(得分:4)
使用--restart =总是只需执行一次docker run。 Docker服务将在此之后重新启动。所以只需执行一次这样的命令:
docker run -d --restart=always --name=container-name image-name command
和docker将在容器进程停止后和重新启动后重新启动容器。