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

Kaj*_*nus 3 production-environment supervisord docker

我想编写一个可以在生产服务器上运行的Bash脚本。它将从Docker集线器下载Docker映像,启动它并保持生成的容器运行。在容器内部,我正在使用Supervisor来保持服务器和数据库的运行,并且Supervisor会重启死在容器内部的所有进程。

但是容器本身又如何-是否有任何建议/最佳实践来确保容器在重新引导主机后启动,以及如何在容器因某种原因崩溃时重新启动?有一个可以给的--restart标志docker run。因此,要确保容器启动并保持运行,只需将这行添加到/etc/rc.local

docker run -d --restart=always --name=container-name image-name command
Run Code Online (Sandbox Code Playgroud)

对?(而且我不需要使用nohup或任何方法&。)或者我忽略了这种方法是否存在问题,或者我缺少什么其他问题?

例如,我不需要以某种方式确保docker服务本身保持正常运行吗?我可以相信它还活着吗?

(相关问题,但仅关于保持docker运行,而不是在重新启动时启动:确保给定的docker容器正在运行

我的主机和容器操作系统:Ubuntu 14.04。

ISa*_*ych 5

使用--restart = always,您只需要执行一次docker run即可。之后,Docker服务将考虑重启。因此,只需执行一次这样的命令:

docker run -d --restart=always --name=container-name image-name command
Run Code Online (Sandbox Code Playgroud)

并且Docker将在容器进程停止后和重新启动后重新启动容器。