博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker mysql开机自启动_Docker学习4-学会如何让容器开机自启服务【坑】
阅读量:1536 次
发布时间:2019-04-21

本文共 1746 字,大约阅读时间需要 5 分钟。

前言

小龙亲测重启服务器后 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 psCONTAINER 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

74887eee8399ea7243550869ca02e91d.png

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

[root@iZbp19lugf22zbsubsf1y6Z ~]# . start.shmysql

三、认识能开机自启的文件:/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

f8ba7b5f70909b6f94b9dbd960e0eb6f.png

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

[root@iZbp19lugf22zbsubsf1y6Z ~]# chmod +x /etc/rc.d/rc.local

[root@iZbp19lugf22zbsubsf1y6Z~]#

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

[root@iZbp19lugf22zbsubsf1y6Z ~]# reboot

Press Ctrl+C to cancel or Enter to reconnect immediately.

Reconnectingin 1 seconds...

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker psCONTAINER 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

显然这一操作很有必要学会哦,不然每次重启都需要手动去启动,是在太麻烦了。以前是我不会,但是最后还有一种更方便是自带的方法:

创建容器时添加参数自启: --restart=always

如果前面已经创建容器了那么可以这样:docker container update --restart=always 容器名字

欢迎来QQ交流群:482713805

转载地址:http://lcidy.baihongyu.com/

你可能感兴趣的文章
nodejs操作Excel
查看>>
nodejs操作Oracle数据库
查看>>
nodejs的模块化
查看>>
nodejs中实现控制台输出内容滚动刷新
查看>>
发布自己的包到npm
查看>>
使用async控制执行顺序
查看>>
关于JOptionPane.showConfirmDialog()确认框的操作
查看>>
利用ActionListener接口,让当前类自身做监听器
查看>>
使用JTable生成表格
查看>>
Java中Timer的使用
查看>>
JavaScript的数据类型判定
查看>>
使用Map代替没完没了的POJO
查看>>
Maven知识汇总
查看>>
JavaFX的Controller之间进行通信
查看>>
Java中通过流获取http请求体中的数据
查看>>
Java读取properties配置文件
查看>>
Java DES加密和解密简单总结
查看>>
JavaFX中基于Stage的界面跳转
查看>>
Java原子操作类型AtomicInteger安全性的验证和使用
查看>>
Java中使用LinkedList做队列
查看>>