You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 21.10下Docker-compose无法停止容器,提示permission denied

解决Ubuntu 21.10中Docker-Compose无法停止容器的权限问题

1. 尝试强制终止单个容器

如果docker-compose down失败,先单独对容器执行强制停止命令,再尝试down:

# 替换为你的容器ID,比如a6eefb47ad58
sudo docker kill <container-id>
# 或者发送SIGKILL强制停止
sudo docker stop -t 0 <container-id>

执行完后再运行docker-compose down,验证是否恢复正常。

2. 检查容器进程状态

如果kill命令也无效,排查容器对应的主机进程是否处于不可中断睡眠状态(D状态):

# 获取容器对应的主机PID
docker inspect --format '{{.State.Pid}}' <container-id>
# 检查该进程的状态
ps aux | grep <pid>

若进程状态显示为D,说明进程在等待IO(比如挂载磁盘卡住),这种情况只能重启系统,或排查存储设备的异常。

3. 修复Docker Socket权限

确认Docker套接字的权限配置正确:

ls -l /var/run/docker.sock

正常输出应为srw-rw---- 1 root docker ...,若权限不符,执行:

sudo chown root:docker /var/run/docker.sock

之后刷新用户组权限(无需重启):

newgrp docker

4. 临时关闭AppArmor限制

Ubuntu默认启用AppArmor,可能对Docker容器操作造成限制:

sudo aa-complain docker-containerd

问题解决后可重新启用强制模式:sudo aa-enforce docker-containerd

5. 升级Docker或系统版本

Ubuntu 21.10已停止官方支持,内置Docker包可能存在已知bug,建议:

  • 升级系统至Ubuntu 22.04 LTS(长期支持版)
  • 手动升级Docker到最新稳定版:
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 添加Docker官方源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu impish stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装最新版Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

6. 查看Docker守护进程日志定位细节

若以上方法均无效,查看Docker服务日志获取详细报错:

journalctl -u docker.service -f

保持日志窗口打开,执行停止容器命令,观察日志中的具体错误信息以定位问题。

内容的提问来源于stack exchange,提问作者Tebe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 06:34:58