Centos 配置开机启动脚本启动 docker 容器
Centos 配置开机启动脚本启动 docker 容器
Intro
我们的 Centos 服务器上部署了好多个 docker 容器,因故重启的时候就会导致还得手动去手动重启这些 docker 容器,为什么不写个脚本自动重启呢,于是就有了这篇文章。
批量启动 Docker 容器
之前我们有提到过关于 docker 的一些骚操作 ,可以直接使用
docker start $(docker ps -aq) # 启动所有容器
docker start $(docker ps -aq -f status=exited) # 启动所有状态为exited 的容器,和上面的命令效果一致
对于有 link 有依赖项的需要先把对应的依赖项先启动,比如说我们有一个 identityserver 的 docker 容器(auth-server),别的容器启动的时候会 link 它,这时候就需要先启动 auth-server 再启动其他容器,这时启动脚本则需要稍加修改
docker start auth-server # 先启动 auth-server 容器
docker start $(docker ps -aq -f status=exited) # 再启动所有状态为exited 的容器
写个 shell 脚本
写一个启动 startup 脚本,在系统启动的时候执行它
在一个你想放启动脚本的地方创建一个 startup.sh,我这里创建在了 /usr/local/scripts/startup.sh
文件内容如下:
#!/bin/bash
# start docker container
docker start auth-server
docker start $(docker ps -aq -f status=exited)
设置文件权限:
sudo chmod +x /usr/local/scripts/startup.sh
设置开机启动
在 /etc/rc.d/rc.local 文件中添加开机启动执行脚本
sudo vi /etc/rc.d/rc.local 编辑文件,添加自定义的启动脚本
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/usr/local/scripts/startup.sh # 新增自定义启动脚本
设置文件权限
chmod +x /etc/rc.d/rc.local
重启验证
执行 sudo reboot 重启服务器,稍后重新连接,执行 docker ps 查看在运行的 docker 镜像,有 docker 在运行就说明我们的启动脚本正常执行了~~
Centos 配置开机启动脚本启动 docker 容器的更多相关文章
- Shell脚本控制docker容器启动顺序
1.遇到的问题 在分布式项目部署的过程中,经常要求服务器重启之后,应用(包括数据库)能够自动恢复使用.虽然使用docker update --restart=always containerid能够让 ...
- centos设置开机自启动脚本
1.新建脚本文件 我这里是为了设置开机自动设置ipv6隧道,所以命名为ipv6tunnel.sh ifconfig sit0 up ifconfig sit0 inet6 tunnel ::66.22 ...
- 定时脚本删除docker容器中内容
今天在我同步mongo数据库的时候,服务器的磁盘突然就被占满了导致同步中断,mongo容器也停止工作了.然后就想要弄一个能够定时清理同步过程中留存在docker容器中的mongo数据的脚本.话不多说, ...
- 配置启动MySQL的Docker容器
docker run -d -p : --name mysql -e MYSQL_ROOT_PASSWORD= mysql:
- 阿里云CentOS 6.5 设备、执行Docker容器和步骤的方法
ssh阿里云计算落地ssh username@ip uname -a 查看linux内核版本号,由于Docker推荐使用3.8内核以上,设版本号低可能会不稳定,因此须要选用yum方式升级内核. 导入 ...
- System V启动脚本启动的服务
/etc/rc.d/init.d/目录下的内容如下:这些常用的服务器都是System v的服务,要控制System V 的服务,我们可以使用以下命令 #/etc/rc.d/init.d/script ...
- CentOS 配置Tomcat服务脚本
#!/bin/bash # description: Tomcat7 Start Stop Restart # processname: tomcat7 # chkconfig: JAVA_HOME= ...
- ubuntu系统自动配置开机启动脚本
以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢 https://www.linuxidc.com/Linux/2017-09/1471 ...
- 怎么修改无法启动的docker容器的配置?
原因: 由于错误的配置导致原来可以启动的docker容器不能启动了.相信很多人的做法是删除容器重建一个,这样也是可以的,但是你的配置和插件就得重新安装,非常麻烦.最小的代价当然是修改原来的配置让他能启 ...
随机推荐
- angular5学习笔记(deep in 路由)
最近接手了一个angular5的项目.项目本身是由不同的人开发的,所有代码结构风格本身就有很大不同,加上本身接触angular5也不久,之前都是使用1,所有自身压力还是很大的. 接手前几天当然是熟悉代 ...
- 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
报错: 解决:在语句开头指定SET NOCOUNT ON 就是这么神cao奇dan. -END-
- Spring Boot中使用Actuator的/info端点输出Git版本信息
对于Spring Boot的Actuator模块相信大家已经不陌生了,尤其对于其中的/health./metrics等强大端点已经不陌生(如您还不了解Actuator模块,建议先阅读<Sprin ...
- OAuth 2 Developers Guide
Introduction This is the user guide for the support for OAuth 2.0. For OAuth 1.0, everything is diff ...
- Vue路由学习心得
GoodBoy and GoodGirl~进来了就看完点个赞再离开,写了这么多也不容易的~ 一.介绍 1.概念:路由其实就是指向的意思,当我们点击home按钮时,页面中就要显示home的内容,点击l ...
- 安装mysql5.5.28的步骤 2017.6.27
http://blog.sina.com.cn/s/blog_7cd69a6501014x7h.html
- Mongodb数据更新命令、操作符
一.Mongodb数据更新命令 Mongodb更新有两个命令:update.save. 1.1update命令 update命令格式: db.collection.update(criteria,ob ...
- Java与Kotlin, 哪个是开发安卓应用的首选语言?
Java是很多开发者创建安卓应用的首选语言.但它在 Android 界的领导地位正受到各种新语言的挑战,Kotlin就是其一.虽然Kotlin最近才开始受到热捧,但有为数不少的人相信 Kotlin 在 ...
- Java中能否利用函数参数来返回值
转自https://blog.csdn.net/da_da_xiong/article/details/70039532 我们在写代码时通常会遇到一种情况,就是我们可能希望在一个函数操作完成后返回两个 ...
- 【强连通分量】Bzoj1051 HAOI2006 受欢迎的牛
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认 ...