• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    docker批量启动关闭所有容器的操作

    docker中

    启动所有的容器命令

    docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

    docker中

    关闭所有的容器命令

    docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

    补充:shell批量启动和删除docker容器,基于docker toolbox

    停止容器

    stop.sh
    #!/bin/bash
    containerIDs="8f78b7e6995b beeae59c6f41 5305c3db3670 bffc551a6b96 61f0fc8b1dc4 8e85a3b7bfe3 d15c4d2dc546 2a3c4eb14584 5e98077acc3a 13bac087b83d"
    statusLived="live"
    statusdead="Dead"
    notExistContainer="None"
    retryCount=3
    function GetContainerStatus(){
     containerExist=$(docker ps -a | grep -i $1 | wc -l ) 
     if [ ${containerExist} -gt 0 ]
     then
     pid=$(docker stats --format "{{.PIDs}}" --no-stream $1 )
     if [ "${pid}" != "0" ]
      then 
      echo "${statusLived}"
     else
      echo "${statusdead}"
     fi
     else
     echo "${notExistContainer}" 
     fi
    }
    function StopContainer(){
     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
     done
    done
    

    说明:containerIDs里面是你已经建好的,docker容器这里为nginx

    把stop.sh放在d:/nginx下面。

    过程稍微慢了点,耐心等待。

    停止容器成功。

    启动容器

    #!/bin/bash
    containerIDs="8f78b7e6995b
     beeae59c6f41
     5305c3db3670
     bffc551a6b96
     61f0fc8b1dc4
     8e85a3b7bfe3
     d15c4d2dc546
     2a3c4eb14584
     5e98077acc3a
     13bac087b83d"
    statusLived="live"
    statusdead="Dead"
    notExistContainer="None"
    retryCount=3
    function GetContainerStatus(){
     containerExist=$(docker ps -a | grep -i $1 | wc -l ) 
     if [ ${containerExist} -gt 0 ]
     then
     pid=$(docker stats --format "{{.PIDs}}" --no-stream $1 )
     if [ "${pid}" != "0" ]
      then 
      echo "${statusLived}"
     else
      echo "${statusdead}"
     fi
     else
     echo "${notExistContainer}" 
     fi
    }
    function StartContainer(){
     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
     done
    done
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    上一篇:Docker 彻底删除私有库镜像的操作
    下一篇:Docker 无法停止或删除容器服务问题的解决方案
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    docker批量启动关闭所有容器的操作 docker,批量,启动,关闭,所有,