码迷,mamicode.com
首页 > 其他好文 > 详细

docker hang 异常处置

时间:2019-03-10 00:05:06      阅读:427      评论:0      收藏:0      [点我收藏+]

标签:viso   for   hang   echo   模式   containe   重启   null   tar   

1 consul maint维护模式 /home/qboxserver/consul/current/bin/consul maint -enable
2、尝试重启 docker
3、2成功→4; 2失败→ 5
4、重启cadvisor 和 mesos-agent
5、重启机器,照机器重启的步骤恢复
6、supervisorctl restart dockerd
7、supervisorctl restart boots-cadvisor mesos-agent

退出维护模式: /home/qboxserver/consul/current/bin/consul maint -disable

该脚本启动方式为screen
SESSION_NAME="kill_hulk_app"; screen -ls | grep "${SESSION_NAME}" > /dev/null; [ "$?" != "0" ] && screen -d -m -S "${SESSION_NAME}" bash /root/kill_hulk_app.sh; screen -ls; echo
处理脚本
sed -i ‘10s/20/17/g‘ /root/kill_hulk_app.sh &&cat /root/kill_hulk_app.sh
#清理对应screen内进程pid
screen -ls | grep kill_hulk_app | cut -d. -f1 |xargs kill
#重新启动脚本
SESSION_NAME="kill_hulk_app"; screen -ls | grep "${SESSION_NAME}" > /dev/null; [ "$?" != "0" ] && screen -d -m -S "${SESSION_NAME}" bash /root/kill_hulk_app.sh; screen -ls; echo && screen -ls | grep kill_hulk_app | cut -d. -f1
脚本内容:

cat kill_hulk_app.sh
#!/bin/bash

function log() {
    echo $(date +"%Y-%m-%d %H:%M:%S"): "$@" | tee -a kill_hulk_app.log
}

while true; do
    log "start"

    HULKS=$(docker ps -s --format ‘{{.ID}} {{.Size}}‘ | awk -F ‘ ‘ ‘$3=="GB" && $2 > 17 {print $1}‘)
    log "find hulks: " ${HULKS}
    for HULK in ${HULKS}; do
        log "container id to stop: " ${HULK}
    log $(docker inspect ${HULK} | grep instance_id)
    log $(docker ps -s --format ‘{{.ID}} {{.Size}}‘ | grep ${HULK})
        if [ "${HULK}" != "" ]; then
            log "stop && rm : " ${HULK}
            docker stop ${HULK} && docker rm ${HULK}
            log $?
        fi
    done

    log "sleep 300s"
    sleep 300
done

docker hang 异常处置

标签:viso   for   hang   echo   模式   containe   重启   null   tar   

原文地址:https://blog.51cto.com/daixuan/2360512

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!