欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

文摘  docker服务器以及自动启动容器设置

Docker 网络 347 0评论

Docker提供了重新启动策略 来控制容器在退出时或Docker重新启动时是否自动启动。重新启动策略可确保以正确的顺序启动链接的容器。Docker建议您使用重新启动策略,并避免使用进程管理器来启动容器。


重新启动策略--live-restore与dockerd 命令的标志不同。--live-restore尽管网络和用户输入中断,但使用允许您在Docker升级期间保持容器运行。


使用重启策略


要为容器配置重新启动策略,请--restart在使用该docker run命令时使用该标志。--restart标志的值可以是以下任何一种:

描述
no不要自动重启容器。(默认)
on-failure如果容器由于错误而退出,则重新启动容器,该错误表现为非零退出代码。
always如果容器停止,请务必重启容器。如果手动停止,则仅在Docker守护程序重新启动或手动重新启动容器本身时才重新启动。(参见重启政策详情中列出的第二个项目)
unless-stopped类似于always,除了当容器停止(手动或其他方式)时,即使在Docker守护程序重新启动后也不会重新启动容器。

以下示例启动Redis容器并将其配置为始终重新启动,除非明确停止或重新启动Docker。

$ docker run -dit --restart unless-stopped redis


重启政策详情

使用重启策略时请记住以下几点:

· 重启策略仅在容器成功启动后生效。在这种情况下,成功启动意味着容器启动至少10秒并且Docker已开始监视它。这可以防止根本不启动的容器进入重启循环。

· 如果手动停止容器,则会忽略其重新启动策略,直到Docker守护程序重新启动或手动重新启动容器。这是防止重启循环的另一种尝试。

· 重新启动策略仅适用于容器。群组服务的重新启动策略配置不同。请参阅与服务重新启动相关的 标志。


如果run时没有添加restart 可以通过update命令追加

docker update --restart=always web


1、先后台启动容器未加restart参数 

2、docker ps 查看了当前运行的容器 

3、重启docker 服务 

4、再次docker ps 查看当前运行的容器,发现容器并没有运行 

5、利用 update 设置 restart=always 

6、重启docker 服务 

7、再次docker ps 查看当前运行的容器,此时发现已经自动启动容器 


使用流程管理器


如果重新启动策略不适合您的需要,例如当Docker之外的进程依赖Docker容器时,您可以使用流程管理器,例如 upstart, systemd或supervisor。


警告:不要尝试将Docker重新启动策略与主机级进程管理器结合使用,因为这会产生冲突。


要使用进程管理器,请将其配置为使用您通常用于手动启动容器的相同docker start或docker service命令来启动容器或服务。有关更多详细信息,请参阅特定流程管理器的文档。


在容器内使用进程管理器

进程管理器也可以在容器内运行,以检查进程是否正在运行,如果没有则启动/重启进程


官方介绍在此,以上内容引用官网内容 

https://docs.docker.com/engine/admin/start-containers-automatically/#use-a-process-manager 

 

docker设置自动启动


1.docker服务设置自动启动

查看已启动的服务

systemctl list-units --type=service


查看是否设置开机启动

systemctl list-unit-files | grep enable


设置开机启动

systemctl enable docker.service


关闭开机启动

systemctl disable docker.service


2.docker容器设置自动启动

启动时加--restart=always

docker run -tid --name isaler_v0.0.11 -p 8081:8080 --restart=always -v /alidata/iDocker/run/projectImages/isaler/v0.0.11/log:/usr/local/tomcat/logs isaler_v0.0.11


Flag           Description

no             不自动重启容器. (默认value)

on-failure     容器发生error而退出(容器退出状态不为0)重启容器

unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

always         在容器已经stop掉或Docker stoped/restarted的时候才重启容器


如果已经过运行的项目

如果已经启动的项目,则使用update更新:

docker update --restart=always isaler_v0.0.11


原文地址:https://www.cnblogs.com/wei9593/p/11192908.html

转载请注明: ITTXX.CN--分享互联网 » docker服务器以及自动启动容器设置

最后更新:2020-08-28 18:01:23

赞 (4) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽