目录
- 启动docker
- 停止docker
- 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 ]thenpid=$(sudo docker stats --format "{{.PIDs}}" --no-stream $1 )if [ "${pid}" != "0" ]thenecho "${statusLived}"elseecho "${statusdead}"fi elseecho "${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} ]thenecho "Container ${containerID} already running"break fi if [ "${status}" == ${notExistContainer} ]thenecho "Container ${containerID} not existed"break fi if [ "${status}" == ${statusdead} ]thenecho "Container ${containerID} stopped ,start container"StartContainer ${containerID}verifyStatus=$(GetContainerStatus ${containerID} )if [ "${verifyStatus}" == ${statusLived} ]thenecho "start container ${containerID} success "breakelseecho "${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 ]thenpid=$(sudo docker stats --format "{{.PIDs}}" --no-stream $1 )if [ "${pid}" != "0" ]thenecho "${statusLived}"elseecho "${statusdead}"fi elseecho "${notExistContainer}"fi}function StopContainer(){ sudo docker stop $1}for containerID in ${containerIDs} do for ((i=1;i<=${retryCount};i++)) dostatus=$(GetContainerStatus ${containerID} )echo "Container ${containerID} status is ${status}"if [ "${status}" == ${statusdead} ]thenecho "Container ${containerID} already stopped"breakfiif [ "${status}" == ${notExistContainer} ]thenecho "Container ${containerID} not existed"breakfiif [ "${status}" == ${statusLived} ]thenecho "Container ${containerID} is lived ,stop container"StopContainer ${containerID}verifyStatus=$(GetContainerStatus ${containerID} )if [ "${verifyStatus}" == ${statusdead} ]thenecho "stop container ${containerID} success "breakelseecho "${i} retry stop container"StopContainer ${containerID}fifi donedone
Python调用脚本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服务】以上所述是小编给大家介绍的使用Shell脚本批量启停Docker服务,希望对大家有所帮助!
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
