Docker 删除 状态为Dead 的容器


Docker 删除 状态为Dead 的容器

错误信息

因为一些不正确的操作,导致容器的状态变成了 dead

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
468389d93c62        df4469c42185        "/usr/bin/dumb-ini..."   6 months ago        Dead                                    k8s_nginx-ingress-controller_nginx-ingress-controller-sqc2x_ingress-nginx_ce8d39e5-5459-11e9-afe4-00163e059fef_1

这类的容器删除时会报错

Error response from daemon: Driver overlay2 failed to remove root filesystem 468389d93c627523310b2d5cf3a99e6344cf276874b00e2a1e90f892f6c6bf5e: remove /var/lib/docker/overlay2/d604787a1699595ecf66126e6604d01d90f6766546bfa0df36752e10d129fafe/merged: device or resource busy

解决方式

找到 overlay2 后面的字符串,查询被占用的进程,将其 kill 掉即可

grep d604787a1699595ecf66126e6604d01d90f6766546bfa0df36752e10d129fafe /proc/*/mountinfo | awk '{print substr($1,7,5)}' | xargs kill -9
  • print 是awk打印指定内容的主要命令
  • $0 表示整个当前行
  • $1 每行第一个字段,每个字段以空格隔开
  • substr($1,7,5) 每行第一个字段,第7个字符开始,截取5个字符

然后在 docker rm container

声明:初心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Docker 删除 状态为Dead 的容器


愿你勿忘初心,并从一而终