使用Shell脚本批量启停Docker服务
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,最近日常测试中经常需要手动启动或停止docker,于是决定写一个Shell脚本来代替人工操作,另外该脚本,也可以通过Python脚本实行远程调用,详细如下所示:目前该脚本是将Container ID写
千家信息网最后更新 2026年11月01日使用Shell脚本批量启停Docker服务
最近日常测试中经常需要手动启动或停止docker,于是决定写一个Shell脚本来代替人工操作,另外该脚本,也可以通过Python脚本实行远程调用,详细如下所示:
目前该脚本是将Container ID写死在脚本中,当然也可以通过传参给脚本来进行控制,大家可以改造一下。
启动docker
启动脚本详细如下所示:
#!/bin/bashcontainerIDs="ad3e4d7fc407 a228730a915f ad3e4d7fc4099"statusLived="live"statusdead="Dead"notExistContainer="None"retryCount=3function GetContainerStatus(){ containerExist=$(sudo docker ps -a | grep -i $1 | wc -l ) if [ ${containerExist} -gt 0 ] then pid=$(sudo docker stats --format "{{.PIDs}}" --no-stream $1 ) if [ "${pid}" != "0" ] then echo "${statusLived}" else echo "${statusdead}" fi else echo "${notExistContainer}" fi}function StartContainer(){ sudo docker restart $1}for containerID in ${containerIDs} do for((i=1;i<=${retryCount};i++)) do status=$(GetContainerStatus ${containerID} ) echo "Container ${containerID} status is ${status}" if [ "${status}" == ${statusLived} ] then echo "Container ${containerID} already running" break fi if [ "${status}" == ${notExistContainer} ] then echo "Container ${containerID} not existed" break fi if [ "${status}" == ${statusdead} ] then echo "Container ${containerID} stopped ,start container" StartContainer ${containerID} verifyStatus=$(GetContainerStatus ${containerID} ) if [ "${verifyStatus}" == ${statusLived} ] then echo "start container ${containerID} success " break else echo "${i} retry start container" StartContainer ${containerID} fi fi donedone停止docker
停止脚本详细如下所示:
#!/bin/bashcontainerIDs="589bda1309cd ad3e4d7fc407 a228730a915f ad3e4d7fc4099"statusLived="live"statusdead="Dead"notExistContainer="None"retryCount=3function GetContainerStatus(){ containerExist=$(sudo docker ps -a | grep -i $1 | wc -l ) if [ ${containerExist} -gt 0 ] then pid=$(sudo docker stats --format "{{.PIDs}}" --no-stream $1 ) if [ "${pid}" != "0" ] then echo "${statusLived}" else echo "${statusdead}" fi else echo "${notExistContainer}" fi}function StopContainer(){ sudo docker stop $1}for containerID in ${containerIDs} do for ((i=1;i<=${retryCount};i++)) do status=$(GetContainerStatus ${containerID} ) echo "Container ${containerID} status is ${status}" if [ "${status}" == ${statusdead} ] then echo "Container ${containerID} already stopped" break fi if [ "${status}" == ${notExistContainer} ] then echo "Container ${containerID} not existed" break fi if [ "${status}" == ${statusLived} ] then echo "Container ${containerID} is lived ,stop container" StopContainer ${containerID} verifyStatus=$(GetContainerStatus ${containerID} ) if [ "${verifyStatus}" == ${statusdead} ] then echo "stop container ${containerID} success " break else echo "${i} retry stop container" StopContainer ${containerID} fi fi donedonePython调用脚本
Python示例脚本如下所示:
import paramikodef StartContainer(svr,port,user,pwd): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(svr,port=port, username=user, password=pwd,timeout=5) client.exec_command("cd /home/TestCode/ && bash startContainer.sh")def StopContainer(svr,port,user,pwd): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(svr, port=port, username=user, password=pwd, timeout=5) client.exec_command("cd /home/TestCode/ && bash stopContainer.sh ")总结
以上所述是小编给大家介绍的使用Shell脚本批量启停Docker服务,希望对大家有所帮助!
脚本
可以通过
服务
人工
手动
示例
帮助
控制
改造
测试
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海喔噻互联网科技有限公司
互联网下的科技发展
互联网中国科技
碳银互联网科技
互联网科技网站
互联网科技的未来发展
互联网金融和金融科技
青海省互联网新科技
富国互联网科技创新基金
成都玖崟互联网科技有限公司乐商圈怎么样
广州优美互联网科技
互联网教育科技公司vipkid
剑昆互联网络科技有限公司临桂
苏州五指互联网络科技有限
国大互联网教育科技有限公司工作
迪庆互联网科技招生
互联网在线教育科技创业
工业互联网展湾科技股份有限公司
好易买互联网科技
互联网金融金融科技
重生之互联网科技帝国
赫美联合互联网科技
互联网科技视频素材
深圳市运趣互联网科技有限公司
深圳前海聚择互联网科技有限公司
互联网科技项目计划书材料类
互联网新科技动漫ppt素材
四川慕妮娅互联网科技有限公司
互联网科技平台产品运营
数字互联网科技有限公司