• docker服务假死解决方案


    简介

    • 在使用docker部署我们的服务时,偶尔会遇到这种情况,使用如下命令:
      1. docker ps 显示容器状态正常,但是对外服务已经不可用
      2. docker stats 没有任何反应
      3. docker stop CONTAINER_ID 没有任何反应
      4. docker restart CONTAINER_ID 也没有任何反应
      5. docker exec -it –user root CONTAINER_ID /bin/bash 也没有任何反应
      6. docker logs CONTAINER_ID --tail 111 -f 也没有任何反应
      7. docker-compose命令也提示响应超时,不可用

    本文内容有

    • 手动清理假死的docker服务

    原文传送门


    1、手动清理假死的docker服务

    1.1 找到假死的docker服务

    执行docker ps命令找到容器ID【CONTAINER_ID】

    1.2 先尝试使用docker自带的命令停止容器

    docker stop 【CONTAINER_ID】 发现停不掉

    1.3 手动查找docker目录下的容器信息,并删掉

    docker默认目录:/var/lib/docker

    所有docker容器的信息都挂载在/var/lib/docker/containers目录下

    通过【CONTAINER_ID】找到该假死服务的目录

    ll /var/lib/docker/containers | grep 【CONTAINER_ID】

    cd /var/lib/docker/containers

    rm -rf 目录名

    这里删除可能会报下面的错误,因为你的容器还挂载了其他目录,信息如下:

    rm: 无法删除"/var/lib/docker/containers/目录名/secrets": 设备或资源忙
    无法删除"/var/lib/docker/containers/目录名/shm": 设备或资源忙

    这个时候查一下容器对应的挂载目录

    cat /proc/mounts |grep "docker" |grep "【CONTAINER_ID】"

    然后先取消挂载

    umount /data/sys/var/docker/containers/挂载目录/secrets
    umount /data/sys/var/docker/containers/挂载目录/shm

    如果这一步 unmout 不了,可以尝试找到使用该目录的进程

    lsof |grep "挂载目录"

    如果有相关进程,记录相关的进程号直接 kill -9 进程号

    这个时候再重新执行删除目录命令

    ll /var/lib/docker/containers | grep 【CONTAINER_ID】

    cd /var/lib/docker/containers

    rm -rf 目录名

    这个时候就可以删掉了

    1.4 再次尝试通过docker的命令停止容器

    docker stop 【CONTAINER_ID】

    docker rm -f 【CONTAINER_ID】

    docker kill --signal=SIGINT 【CONTAINER_ID】

    如果还是无法停掉改服务,可以按如下步骤:

    使用linux进程管理命令来结束容器进程

    先找到该进程:

    ps -ef | grep【CONTAINER_ID】

    强制杀掉筛选出来的进程信息:

    kill -9 PID

    1.5 再次检查docker服务状态

    docker ps

    可以看到该服务已经被干掉了。

    1.6 最粗暴的解决方案如下

    直接停止docker.service,重启后自然就好了,如果服务太多,我不建议这样使用,太慢了,而且影响其他服务。

    sudo service restart docker

  • 相关阅读:
    pytorch之relu激活函数
    【Javaweb项目实战】黑马旅游网
    Unity中Shader纹理的过滤
    java中泛型的理解
    免杀对抗-宏免杀
    GitHub详细教程
    TYUT太原理工大学2022需求工程考试填空题
    宠物之家网站大学生网页制作教程 学生HTML静态宠物网页设计作业成品 DIV布局简单动物网页制作代码
    Qt QWebSocket实现JS调用C++
    LeetCode·899.有序队列·最小表示法
  • 原文地址:https://blog.csdn.net/iijik55/article/details/126327590