实现docker容器开机自启动

前几天通过docker命令,创建了一个docker容器,运行正常,但是每次重启Centos Linux系统,docker容器就会变成停止状态,

image.png


每次系统启动后,需要手动启动的docker容器,命令:

docker start 容器ID

image.png


实现Docker容器开机自动启动实际非常简单,因为Docker提供了restart policy机制,可以在容器退出或者Docker重启时控制容器能够自启动。这种Restart policy可以保证相关容器按照正确顺序启动。当然也可以通过进程监控的方式(systemd)来完成这种动作,但Docker建议尽量避免使用进程监控的方式来 "自启动" 容器。

实现方法:

1、在我们创建容器时通过使用—restart参数来实现,

docker run --name adguardhome -v /AdguardHome:/opt/adguardhome/work -v /AdguardHome:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 68:68/tcp -p 68:68/udp -p 80:80/tcp -p 443:443/tcp -p 853:853/tcp -p 3000:3000/tcp --restart=always -d adguard/adguardhome

--restart具体参数值详细信息如下:

no -  容器退出时,不重启容器;

on-failure - 只有在非0状态退出时才从新启动容器;

always - 无论退出状态是如何,都重启容器;

2、在容器创建后通过update命令实现容器的开机自启动

如果创建时未指定--restart=always ,可通过update 命令设置:

docker update --restart=always 容器名称(或者容器ID)

这样就实现了开机容器自启动。

实际测试,centos linux系统中执行root命令后,进入系统,通过docker ps –a命令查看,docker容器,正常运行。


image.png

猜你喜欢

转载自blog.51cto.com/6300167/2563746