使用Shell脚本批量启停Docker服务
最近日常测试中经常需要手动启动或停止docker,于是决定写一个Shell脚本来代替人工操作,另外该脚本,也可以通过Python脚本实行远程调用,详细如下所示:
目前该脚本是将ContainerID写死在脚本中,当然也可以通过传参给脚本来进行控制,大家可以改造一下。
启动docker
启动脚本详细如下所示:
#!/bin/bash
containerIDs="ad3e4d7fc407a228730a915fad3e4d7fc4099"
statusLived="live"
statusdead="Dead"
notExistContainer="None"
retryCount=3
functionGetContainerStatus(){
containerExist=$(sudodockerps-a|grep-i$1|wc-l)
if[${containerExist}-gt0]
then
pid=$(sudodockerstats--format"{{.PIDs}}"--no-stream$1)
if["${pid}"!="0"]
then
echo"${statusLived}"
else
echo"${statusdead}"
fi
else
echo"${notExistContainer}"
fi
}
functionStartContainer(){
sudodockerrestart$1
}
forcontainerIDin${containerIDs}
do
for((i=1;i<=${retryCount};i++))
do
status=$(GetContainerStatus${containerID})
echo"Container${containerID}statusis${status}"
if["${status}"==${statusLived}]
then
echo"Container${containerID}alreadyrunning"
break
fi
if["${status}"==${notExistContainer}]
then
echo"Container${containerID}notexisted"
break
fi
if["${status}"==${statusdead}]
then
echo"Container${containerID}stopped,startcontainer"
StartContainer${containerID}
verifyStatus=$(GetContainerStatus${containerID})
if["${verifyStatus}"==${statusLived}]
then
echo"startcontainer${containerID}success"
break
else
echo"${i}retrystartcontainer"
StartContainer${containerID}
fi
fi
done
done
停止docker
停止脚本详细如下所示:
#!/bin/bash
containerIDs="589bda1309cdad3e4d7fc407a228730a915fad3e4d7fc4099"
statusLived="live"
statusdead="Dead"
notExistContainer="None"
retryCount=3
functionGetContainerStatus(){
containerExist=$(sudodockerps-a|grep-i$1|wc-l)
if[${containerExist}-gt0]
then
pid=$(sudodockerstats--format"{{.PIDs}}"--no-stream$1)
if["${pid}"!="0"]
then
echo"${statusLived}"
else
echo"${statusdead}"
fi
else
echo"${notExistContainer}"
fi
}
functionStopContainer(){
sudodockerstop$1
}
forcontainerIDin${containerIDs}
do
for((i=1;i<=${retryCount};i++))
do
status=$(GetContainerStatus${containerID})
echo"Container${containerID}statusis${status}"
if["${status}"==${statusdead}]
then
echo"Container${containerID}alreadystopped"
break
fi
if["${status}"==${notExistContainer}]
then
echo"Container${containerID}notexisted"
break
fi
if["${status}"==${statusLived}]
then
echo"Container${containerID}islived,stopcontainer"
StopContainer${containerID}
verifyStatus=$(GetContainerStatus${containerID})
if["${verifyStatus}"==${statusdead}]
then
echo"stopcontainer${containerID}success"
break
else
echo"${i}retrystopcontainer"
StopContainer${containerID}
fi
fi
done
done
Python调用脚本
Python示例脚本如下所示:
importparamiko
defStartContainer(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/&&bashstartContainer.sh")
defStopContainer(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/&&bashstopContainer.sh")
总结
以上所述是小编给大家介绍的使用Shell脚本批量启停Docker服务,希望对大家有所帮助!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。