服务器
最近日常测试中经常需要手动启动或停止docker,于是决定写一个shell脚本来代替人工操作,另外该脚本,也可以通过python脚本实行远程调用,详细如下所示:
目前该脚本是将container id写死在脚本中,当然也可以通过传参给脚本来进行控制,大家可以改造一下。
启动docker
启动脚本详细如下所示:
#!/bin/bashcontainerids=ad3e4d7fc407 a228730a915f ad3e4d7fc4099statuslived=livestatusdead=deadnotexistcontainer=noneretrycount=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 ad3e4d7fc4099statuslived=livestatusdead=deadnotexistcontainer=noneretrycount=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服务,希望对大家有所帮助!
网站搭建在内访问无法访问5G时代 企业手机网站建设也变得更加简单阿里云服务器型号区别极品域名wait.com已被韩国终端以上百万价格收购?阿里云域名云服务器怎么绑定电脑中的文件无法删除怎么办?小技巧删除无法删除的顽固文件华为云弹性云服务器一年要多少钱企业邮箱哪家更好用