Centos 配置开机启动脚本启动 docker 容器

原文: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 在运行就说明我们的启动脚本正常执行了~~

原文地址:https://www.cnblogs.com/lonelyxmas/p/10850685.html

时间: 2024-10-09 23:12:13

Centos 配置开机启动脚本启动 docker 容器的相关文章

Centos 配置开机启动项

Linux system 部署新的服务,初次启动服务都是通过command的方式手工启动,时间久了之后重启系统或有别的人员维护系统[不熟悉环境.业务],可能造成服务未启动.业务受影响,排查起来维护成本较高,且影响业务连续性.因此,设置新增业务为开机启动,显得十分必要,作者本身也是深有体会.本文着重介绍,如何为新增服务设置开启启动. 设置开机启动方式一 #ntsysv [quit ] =--图形界面查看.设置开机启动项 快捷键 CTRL+V 下翻空格键 选中tab quit 命令退出图形界面 设置

解决CentOS 7 开机网络设备不启动方法

在VMware 10里新装一个CentOS 7系统,开机发现没有网络,于是ifconfig一下发现网卡没有启动 eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 ether 00:0c:29:2b:c0:1e  txqueuelen 1000  (Ethernet) RX packets 1  bytes 251 (251.0 B) RX errors 0  dropped 0  overruns 0  fram

在阿里云CentOS 6.5 安装、运行Docker容器的方法与步骤

ssh登陆阿里云ssh [email protected] uname -a 查看linux内核版本,因为Docker推荐使用3.8以上内核,如果版本低可能会不稳定,因此需要选用yum方式升级内核. 导入 KEY ,安装软件源.在 YUM 的 ELRepo 源中,有mainline(3.13.1).long-term(3.10.28)这 2 个内核版本,考虑到 long-term 更稳定,会长期更新,所以选择这个版本.点击查看方法来源 导入public key:rpm --import http

Centos 7开机自动启动脚本

Centos 7 中 /etc/rc.d/rc.local 这个文件权限降低了. 你可以看下 ll /etc/rc.d/rc.local 看他的权限. 你可以试着加下权限. chmod +x /etc/rc.d/rc.local centos7里把rc.local做成了服务,你可以查看一下服务是否启动. systemctl status rc-local.serives 启动命令: systemctl enable rc-local.service

python脚本监控docker容器

脚本功能: 监控CPU使用率 监控内存使用状况 监控网络流量 #!/usr/bin/env  python # --*-- coding:UTF-8 --*-- import  sys import  tab import  re import  os import  time from docker  import Client import  commands keys_container_stats_list = ['blkio_stats', 'precpu_stats', 'netwo

java应用linux启动脚本

java应用linux启动脚本 启动脚本:testRun.sh #!/usr/bin/env bash LANG=zh_CN.utf8 JAVA_HOME=/app/jtech/jdk1.8.0_73 APP_DIR=$(pwd) LIB_HOME=$APP_DIR/WEB-INF/lib export JAVA_HOME LANG LIB_HOME cps="$APP_DIR/WEB-INF/classes/" for jarPkg in `find $APP_DIR/WEB-INF

在 Docker 容器中运行应用程序

案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 mailer 程序,运行于后台,当接收到事件后会向管理员发送邮件. 容器 agent: 该容器运行一个 watcher 程序,以交互模式运行,用于不断地监测 web 服务的运行情况,一旦出现故障会立即向 mailer 容器发送消息. 创建容器 创建并运行 web 容器 $ docker run --

虚拟化技术—docker容器—网络模式

Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理.然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分.因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求.这里先介绍Docker自身的4种网络工作方式. 1. Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: § host模式,使用--net=host指定

利用Openvswitch实现不同物理机中的Docker容器互连

1. 测试环境 75机(10.11.150.75):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 74机(10.11.150.74):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 73机(10.11.150.73):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 183机: