Ubuntu 16.04下Docker停止/删除容器报错求助
解决Ubuntu 16.04下Docker容器无法删除的AppArmor相关问题
Hey there! I know it's frustrating when you're just starting out with Docker and hit a roadblock like this. Let's walk through the steps to fix this container removal issue, focusing on the AppArmor part you're unsure about.
第一步:先确认容器信息
首先,先搞清楚你要删除的容器的ID或者名字,执行这个命令:
docker ps -a
找到目标容器对应的CONTAINER ID或者NAMES列的内容,记下来后面要用。
第二步:尝试常规强制删除(先排除简单情况)
先试试最直接的强制删除命令,有时候可能只是容器状态异常,这个命令能解决大部分问题:
docker rm -f <你的容器ID或名字>
如果这个命令还是报错,再往下走处理AppArmor的问题。
第三步:处理AppArmor限制问题
Ubuntu 16.04默认启用了AppArmor,它有时候会阻止Docker的一些操作导致容器删不掉,我们可以临时调整它的规则:
- 先查看当前AppArmor的状态,确认Docker相关的profile:
sudo aa-status
你会看到类似docker-default的profile,这就是Docker默认的AppArmor规则。
- 临时将该profile设置为「仅警告」模式(不阻止操作):
sudo aa-complain docker-default
这个命令会让AppArmor不再强制阻止Docker的操作,只是记录警告,这样我们就能顺利删除容器了。
- 再次执行强制删除命令:
docker rm -f <你的容器ID或名字>
这时候应该就能成功删除容器了。
- (可选)容器删除后,恢复AppArmor的强制模式:
如果你想回到原来的安全限制状态,执行:
sudo aa-enforce docker-default
额外排查技巧
如果上面的步骤还是不行,可以试试:
- 重启Docker服务,有时候服务卡住也会导致容器异常:
sudo systemctl restart docker
- 查看Docker的日志找更详细的报错信息:
sudo journalctl -u docker.service
从日志里能找到具体是哪里出了问题,方便进一步排查。
内容的提问来源于stack exchange,提问作者Gobelet
相关产品推荐
相关产品推荐

