您的位置:首页 > 服务器 > > 正文

docker容器关闭后怎么启动(docker批量启动关闭所有容器的操作)

更多 时间:2021-10-15 00:18:05 类别:服务器 浏览量:1564

docker容器关闭后怎么启动

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

    docker容器关闭后怎么启动(docker批量启动关闭所有容器的操作)

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

    docker容器关闭后怎么启动(docker批量启动关闭所有容器的操作)

    docker容器关闭后怎么启动(docker批量启动关闭所有容器的操作)

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

    docker容器关闭后怎么启动(docker批量启动关闭所有容器的操作)

    停止容器成功。

    启动容器
  • #!/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批量启动关闭所有容器的操作)

    docker容器关闭后怎么启动(docker批量启动关闭所有容器的操作)

    docker容器关闭后怎么启动(docker批量启动关闭所有容器的操作)

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

    您可能感兴趣