Ste*_*ntz 120 ubuntu docker ubuntu-14.04
系统启动时自动启动docker容器的好方法是什么?
在 Ubuntu 14.04 上有没有首选的方法来做到这一点?
我supervisord过去曾用于自动启动网络应用程序。但这对 Docker 来说并不是一件正确的事情。
akn*_*ds1 145
显然,当前自动启动 Docker 容器(从 Docker 1.2 开始)的方法是使用重启策略。这将控制 Docker 应如何处理启动时容器的启动和退出时容器的重新启动。到目前为止,我已经使用了 'always' 选项,并且可以确认它使 Docker 在系统启动时自动启动容器:
sudo docker run --restart=always -d myimage
Run Code Online (Sandbox Code Playgroud)
重新启动策略 在 Docker 运行中使用 --restart 标志,您可以指定一个重新启动策略,用于确定容器在退出时应该或不应该如何重新启动。
no - 退出时不要重新启动容器。
on-failure - 仅当容器以非零退出状态退出时才重新启动容器。
always - 无论退出状态如何,始终重新启动容器。
您还可以指定 Docker 在使用 on-failure 策略时尝试重新启动容器的最大次数。默认情况下,Docker 将永远尝试重新启动容器。
Run Code Online (Sandbox Code Playgroud)$ sudo docker run --restart=always redis这将使用始终重启策略运行 redis 容器,以便如果容器退出,Docker 将重启它。
Run Code Online (Sandbox Code Playgroud)$ sudo docker run --restart=on-failure:10 redis这将运行 redis 容器,重启策略为 on-failure,最大重启次数为 10。如果 redis 容器以非零退出状态退出超过 10 次,Docker 将中止尝试重启容器。提供最大重启限制仅对 on-failure 策略有效。
Law*_*oot 10
Docker 有这个页面,解释了如何使用 upstart 和 systemd 来做到这一点。我同意这对 Docker 来说似乎不是正确的事情。他们的解决方案是运行docker start,假设您已经创建了容器。我认为你要么docker run --rm在 upstart 脚本中做(把它当作一个全新的进程和一个镜像的容器),要么让 docker 守护进程在启动时重新启动容器(如果你什么都不做,默认情况下它会这样做) )。Upstart 具有允许轻松启动/停止进程的优势,但您也可以通过 docker 的启动/停止来实现!
我认为在 upstart 脚本工作之前强制用户手动创建一个容器(具有所有正确的端口/卷绑定)是很奇怪的。
| 归档时间: |
|
| 查看次数: |
158473 次 |
| 最近记录: |