目录
存在问题
今天重启虚拟机发现,Docker中的容器没有完全启动,导致部署的Springboot项目还要手动输入指令启动。太麻烦,必须解决。
具体操作
更新容器开机自启动状态 docker update --restart=always/no [容器ID前3位]
1、查看docker容器,关闭容器
dcoker ps
docker stop [容器ID前3位/容器ID/容器name]
2、docker服务开机自启动
systemctl enable docker
注意:容器自动的前提是:一定要确保docker跟随系统开机启动,执行顺序是:宿主机服务器开机 > docker服务自启动 > 容器自启动。
3、设置容器状态
设置容器跟随docker开启和关闭的命令如下:
- 开机自启动开启
docker update --restart=always [容器ID前3位/容器ID/容器name]
- 开机自启动关闭
docker update --restart=no [容器ID前3位/容器ID/容器name]
注意:
–restart=后面可以写3个值,分别是如下:no,容器退出时,不重启容器;
on-failure,只有在非0状态退出时才从新启动容器;
always,无论退出状态是如何,都重启容器;
4、重启docker服务
systemctl restart docker
5、验证容器是否开机自启动
重启 docker 服务后,查看容器是否随docker启动:
docker ps
总结
通过 docker update --restart=always/no [容器ID前3位/容器ID/容器name] 指令,可以很简单的设置容器随docker启动或关闭,设置Nginx、Reids、Springboot等都成功完成操作。
如果想在创建容器时就设置自启动,基本语法格式如下所示:
docker run --name mycontainer -d --restart=always <image_name>