RHEL卸载Docker EE后删除/var/lib/docker目录遇设备占用错误求助
解决RHEL卸载Docker EE时
/var/lib/docker目录删除失败(Device or resource busy)的问题 我来帮你搞定这个卸载时遇到的「设备或资源忙」问题,这是卸载Docker时很常见的状况——本质是还有Docker相关的进程在运行,或者它的插件/容器文件系统还处于挂载状态,导致你无法直接删除目录。按照下面的步骤一步步操作就能解决:
第一步:彻底停止所有Docker相关服务与进程
首先要确保Docker的主服务、socket服务以及所有残留进程都被终止:
- 停止Docker服务:
sudo systemctl stop docker - 停止Docker socket服务(这个经常被忽略,但会占用相关资源):
sudo systemctl stop docker.socket - 检查并清理残留进程:
先列出所有和Docker相关的进程:
找到输出里的进程ID(PID),用强制终止命令杀掉:sudo ps aux | grep docker
注意:只杀掉那些明确和docker、containerd相关的进程,别误删系统进程。sudo kill -9 <进程PID>
第二步:卸载Docker相关的挂载文件系统
出现「Device or resource busy」很大概率是因为插件的rootfs被挂载了,我们需要先卸载这些挂载点:
- 先查看当前和
/var/lib/docker相关的挂载项:
你会看到类似你报错里的sudo mount | grep /var/lib/docker/var/lib/docker/plugins/xxx/rootfs/dev这类挂载路径。 - 对每个挂载路径执行卸载命令:
如果卸载时还是提示忙,可以用sudo umount /var/lib/docker/plugins/11d2935e42e055dda59b62977de0c00bb18d820c6eccdff964f232276a6e7cd7/rootfs/devlsof <挂载路径>查看哪个进程在占用它,杀掉对应进程后再重新卸载。
第三步:重新尝试删除/var/lib/docker目录
现在所有占用资源的进程和挂载都清理完毕了,执行删除命令:
sudo rm -rf /var/lib/docker
这次应该就能顺利删除整个目录了。
可选:彻底清理Docker EE的安装包
如果你还想把系统里的Docker EE安装包也彻底移除,可以执行:
sudo yum remove docker-ee docker-ee-cli containerd.io
内容的提问来源于stack exchange,提问作者aman_novice
相关产品推荐
相关产品推荐

