Docker学习4-学会如何让容器开机自启服务

Posted gsxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker学习4-学会如何让容器开机自启服务相关的知识,希望对你有一定的参考价值。

前言

小龙亲测重启服务器后 docker 容器没跑起来,相信有不少小伙伴在用docker部署容器的时候也发现每次开机服务就没有自启了,需要手动去执行把容器服务开启起来,但有没有可以让它开机自启呢?显然是有的。

一、收集需要自启的容器id或name

  1.以mysql5.7的容器name为例,查询容器:

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb665f57e66b mysql:5.7 "docker-entrypoint.s…" 7 days ago Exited (0) 8 minutes ago mysql

  2.根据上面的容器name,我们手动运行启动一下,可多个。

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker start mysql
mysql

  3.查看已运行的容器,可以看到我们手动是这样的一个操作来完成启动

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb665f57e66b mysql:5.7 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 33060/tcp, 0.0.0.0:3310->3306/tcp mysql

二、利用 shell 脚本来完成手动运行容器命令

  1.增加一个sh脚本:vi start.sh

[root@iZbp19lugf22zbsubsf1y6Z ~]# vi start.sh

  2.编辑一个启动命令把保存退出即可,容器name为例:docker start mysql

  技术图片

  3.自测一下运行 start.sh 脚本,可以正常启动没问题的。

[root@iZbp19lugf22zbsubsf1y6Z ~]# . start.sh
mysql

三、认识能开机自启的文件:/etc/rc.d/rc.local

  1.我们将 . start.sh 脚本添加至:/etc/rc.d/rc.local

echo ". ~/start.sh">> /etc/rc.d/rc.local

  2.查看是否已添加:cat /etc/rc.d/rc.local

技术图片

 

   3.设置 rc.local 文件权限:chmod +x /etc/rc.d/rc.local

  4.完成上面的操作后,就可以:reboot 试一下啦,连接后查看运行中容器:docker ps。

[root@iZbp19lugf22zbsubsf1y6Z ~]# reboot

Press Ctrl+C to cancel or Enter to reconnect immediately.
Reconnecting in 1 seconds...

 

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb665f57e66b mysql:5.7 "docker-entrypoint.s…" 22 minutes ago Up 8 seconds 33060/tcp, 0.0.0.0:3310->3306/tcp mysql

 

显然这一操作很有必要学会哦,不然每次重启都需要手动去启动,是在太麻烦了。

以上是关于Docker学习4-学会如何让容器开机自启服务的主要内容,如果未能解决你的问题,请参考以下文章

Docker 容器开机自启

Centos 7.5 docker 容器怎么设置开机自启

seafile设置开机自启

Ubuntu18.04 设置开机启动docker

让Node Red开机自启

WSL2中安装docker 并开机启动