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容器不能启动了.相信很多人的做法是删除容器重建一个,这样也是可以的,但是你的配置和插件就得重新安装,非常麻烦.最小的代价当然是修改原来的配置让他能启 ...
随机推荐
- define 的全部使用方法
typedef的总结,以下是引用的内容(红色部分是我自己写的内容). 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如: char* pa, pb; // 这 ...
- Git的思想和基本工作原理2
那么,简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重要,若是理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 Git 的时候,请不要尝试把各种概 ...
- 异常--java.text.ParseException: Unparseable date
String d = "2015-05-19" SimpleDateFormat sdf = new SimpleDateFormat( "yyyy/MM/dd HH ...
- HTML学习之制作导航网页
前言 今天用HTML写了一个网址导航,源代码如下: <html> <head> <title>网址导航</title> </head> &l ...
- JavaWeb(四)Servlet-1
1.Servlet 简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet ...
- this.state.menuList.toArray()[0].get('id')
用toArray()处理传过来的list用get(")获取里面的值 而我用的是attributes得方法
- 玩转JPA(一)---异常:Repeated column in mapping for entity/should be mapped with insert="false" update="fal
最近用JPA遇到这样一个问题:Repeated column in mapping for entity: com.ketayao.security.entity.main.User column: ...
- 【原】用Java编写第一个区块链(二)
这篇文章将去介绍如何使用区块链进行交易. [本文禁止任何形式的全文粘贴式转载,本文来自 zacky31 的随笔] 目标: 在上一篇文章中,我们已经创建了一个可信任的区块链.但是目前所创建的链中包含的有 ...
- Java 链接SQL Server 数据库
1 //Java 连接 SQL Server数据库 2 public static final String DRIVERNAME="com.microsoft.sqlserver.jdbc ...
- Solr相似性算法
Solr相似性算法 介绍 Solr 4及之前的版本默认采用VSM(向量空间模型)进行相似度的计算(或打分).之后的版本,则采用Okapi BM25(一种二元独立模型的扩展),属于概率模型. 检索模型通 ...