Docker 容器删除卡在 Removal In Progress / Dead 解决

docker rm -f 报错 driver "overlay2" failed to remove root filesystem: unlinkat ... operation not permitted,1panel 面板里一直显示"移除中"。=

问题现象

  • 执行 docker rm -f <容器ID> 失败,报错类似:

    复制代码
    Error response from daemon: container ...: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/.../diff/.../license_info.json: operation not permitted
  • 容器状态可能显示为 Dead 或 Removal In Progress。

  • Web 管理面板(1panel)里一直转圈"移除中",点停止也没用。

  • ps aux | grep <容器ID> 找不到占用进程。

原因分析

Docker 使用 overlay2 存储驱动时,容器的可写层位于 /var/lib/docker/overlay2/<id>/diff。如果容器内的某些文件被设置了 immutable(不可变)属性 ,Docker 在删除容器时就无法删除这些文件,从而报 operation not permitted。

哪些文件会被设置 immutable?常见于一些安全软件或授权管理程序,比如 AWVS 会把授权文件(如 wa_data.dat、license_info.json)锁定,防止被篡改。容器运行期间加锁,删除时 Docker 没有权限解锁,就卡住了。

解决步骤

1. 递归移除 diff 目录的不可变属性

bash 复制代码
chattr -iR /var/lib/docker/overlay2/b6d79fab4681f181b48690e38b6b8b86870d62e13cf69dda60e9f686dcfc6198/diff

把路径替换成你实际获取到的 UpperDir。-R 表示递归,-i 表示移除 immutable 属性。

2. 再次强制删除容器

bash 复制代码
docker rm -f bdd8f7a60908

这次应该就成功了。刷新 Web 面板,卡住的容器也会消失。

总结

  • 问题根源 :容器内文件被 chattr +i 锁定,Docker 删除时无权限。
  • 核心命令 :chattr -iR <diff目录> + docker rm -f <容器ID>。
相关推荐
沫璃染墨19 小时前
《Linux工程实践篇(一):认识设计模式——从日志系统看策略模式》
linux·c++·安全·设计模式·策略模式
工作10年+,存储芯片行业19 小时前
Linux NVMe 中断排查与性能优化:CPU 亲和性
linux·运维·服务器·windows·性能优化·ssd·pcie
小蒋观天下19 小时前
端侧大模型在安防摄像头部署实操(上)|行业痛点、架构选型、落地思路解析
大数据·人工智能·安全·计算机视觉·ai大模型
林伽一19 小时前
能力趋同、账单分化,技术选型正在从榜单转向负载|2026年10月06日
人工智能·科技·安全·ai
一号弯20 小时前
装完LINUX,请先新建日常用户
linux·运维·服务器
许彰午20 小时前
03-Linux环境准备依赖包内核参数与用户组
linux·运维·服务器·数据库
sbjdhjd21 小时前
云安全 | Docker 容器逃逸复盘(二):2375 未授权接口如何突破容器管理边界
网络安全·docker·云原生·数据挖掘·开源·云计算·云安全
HackTwoHub1 天前
Clown SRC skill第二代2.x最新版企业安全研究 Skill|证据优先的 SRC 与白盒审计工作流正式更新
网络·安全·web安全·网络安全·系统安全·密码学·安全架构
一号弯1 天前
Hyperv的LINUX虚拟机扩容
linux·运维·服务器
白帽攻防录1 天前
SRC 挖洞:Certighost AD CS 域控制器伪造深度复盘,CVE-2026-54121 一个普通域用户怎么拿走整个企业域
网络·安全·web安全·网络安全·域安全