前几天经过docker命令,建立了一个docker容器,运行正常,可是每次重启Centos Linux系统,docker容器就会变成中止状态,linux
每次系统启动后,须要手动启动的docker容器,命令:docker
docker start 容器ID号centos
实现Docker容器开机自动启动实际很是简单,由于Docker提供了restart policy机制,能够在容器退出或者Docker重启时控制容器可以自启动。这种Restart policy能够保证相关容器按照正确顺序启动。固然也能够经过进程监控的方式(如systemd)来完成这种动做,但Docker建议尽可能避免使用进程监控的方式来 "自启动" 容器。tcp
实现方法:ide
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/adguardhomespa
--restart具体参数值详细信息以下:rest
no - 容器退出时,不重启容器;blog
on-failure - 只有在非0状态退出时才重新启动容器;进程
always - 不管退出状态是如何,都重启容器;
2、在容器建立后经过update命令实现容器的开机自启动
若是建立时未指定--restart=always ,可经过update 命令设置:
docker update --restart=always 容器名称(或者容器ID)
这样就实现了开机容器自启动。
实际测试,centos linux系统中执行root命令后,进入系统,经过docker ps –a命令查看,docker容器,正常运行。