使用Shell脚本批量启停Docker服务
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,最近日常测试中经常需要手动启动或停止docker,于是决定写一个Shell脚本来代替人工操作,另外该脚本,也可以通过Python脚本实行远程调用,详细如下所示:目前该脚本是将Container ID写
千家信息网最后更新 2025年12月02日使用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安全错误
数据库的锁怎样保障安全
安卓软件开发学了什么软件
2018网络安全宣传周注册
网络安全结
软件开发中专学业水平测试
网络安全大赛邀请函
江苏智能软件开发种类
ea软件开发招聘
xcloud 数据库
警告本网站服务器立足
数据库技术与应用讨论答案
网络安全四大主体责任是
软件开发服务合同 中英文
服务器修复oracle数据
建议加强网络技术培训
软件测试计划数据库测试
飞车下载软件开发
网络安全的内涵四个安全
三国群英传 服务器
nfc软件开发
中国经济社会统计发展数据库
杭州湾区腾讯互联网科技大厦
数据库主要的数据表
湖北计算机应用软件开发多少钱
襄州金慧互联网科技有限公司
乡镇普及网络安全基层巡演
数据库常量有哪些类型
服务器查询目录使用率
前海同益网络技术
陕西浪潮服务器虚拟化费用
腾讯云海外服务器免费更换IP