Ubuntu 14.04安装Docker CE后无法连接containerd求助
嘿,我之前碰到过几乎一模一样的问题——Docker守护进程明明跑着,但CLI连不上,日志里全是containerd的超时报错。结合你的情况,试试下面这些步骤,应该能解决:
排查与修复方案
1. 先确认containerd服务是否正常运行
Docker完全依赖containerd,要是它没跑起来,肯定会出问题。先查状态:
sudo systemctl status containerd
如果显示未运行,赶紧启动并设置开机自启:
sudo systemctl start containerd sudo systemctl enable containerd
2. 直接测试containerd socket的连通性
跳过Docker,直接用containerd的工具ctr连接那个报错的socket,验证是不是socket本身的问题:
sudo ctr --address /var/run/docker/containerd/docker-containerd.sock version
要是这个命令也超时,那问题根源就在containerd,不是Docker CLI的锅。
3. 重启相关服务试试“万金油”操作
有时候就是服务进程卡住了,重启一下说不定就好:
sudo systemctl restart containerd sudo systemctl restart docker
4. 重置containerd的配置文件
老版本的containerd(比如Ubuntu 14.04里的)可能配置有问题,生成一个默认配置覆盖试试:
sudo containerd config default > /etc/containerd/config.toml
生成完记得重启containerd:
sudo systemctl restart containerd
5. 检查系统资源是否充足
超时错误经常和内存/CPU不足有关——containerd没法及时响应请求。快速排查:
free -h # 查看内存使用 top # 实时看CPU和进程负载
如果内存吃满了,关掉一些没用的进程,或者给系统加内存,再重试Docker命令。
6. 重装containerd试试
如果上面都没用,可能是containerd的安装文件损坏了,卸载再重装:
sudo apt-get purge containerd sudo apt-get install containerd
重装完成后重启Docker和containerd服务。
7. 检查AppArmor的限制
Ubuntu 14.04默认启用AppArmor,有时候它会阻止containerd的socket访问。先查状态:
sudo aa-status
如果看到和containerd相关的拒绝规则,可以临时关闭AppArmor测试:
sudo systemctl stop apparmor sudo systemctl disable apparmor
要是测试能正常连接了,再去调整AppArmor的规则,允许containerd的socket操作。
内容的提问来源于stack exchange,提问作者Pierre de LESPINAY
相关产品推荐
相关产品推荐

