如何确保Docker容器启动并在生产服务器上保持运行?

时间:2015-01-13 09:04:26

标签: docker production-environment supervisord

我想编写一个可以在生产服务器上运行的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。

1 个答案:

答案 0 :(得分:4)

使用--restart =总是只需执行一次docker run。 Docker服务将在此之后重新启动。所以只需执行一次这样的命令:

docker run -d --restart=always --name=container-name image-name command

和docker将在容器进程停止后和重新启动后重新启动容器。