docker安装容器的时候,报错Error response from daemon: dial unix /run/containerd ... connection refused

一、问题描述

docker安装容器的时候,报错Error response from daemon: dial unix /run/containerd/s/28086232b7ff6574d60911694c88bac5557ce09ff7f867821e136716cbc1a9e6: connect: connection refused: unknown.

我们在升级Metersphere的时候,发现在images都已下载正常,但是启动容器的时候报错。
在这里插入图片描述

二、问题排查

1、走过的弯路

怀疑是docker环境配置的问题,因为我不久修改过/etc/docker/daemon.json。
但是回过头来想,不对啊,Image镜像都下载成功了呀。。

[root@k8snode1 ~]# docker images
REPOSITORY                                                        TAG                            IMAGE ID       CREATED         SIZE
registry.cn-qingdao.aliyuncs.com/metersphere/workstation          v2.10.2-lts                    33768a020031   6 days ago      576MB
registry.cn-qingdao.aliyuncs.com/metersphere/test-track           v2.10.2-lts                    230aa5d1e4f9   6 days ago      615MB
registry.cn-qingdao.aliyuncs.com/metersphere/system-setting       v2.10.2-lts                    68bd068c4400   6 days ago      580MB
registry.cn-qingdao.aliyuncs.com/metersphere/report-stat          v2.10.2-lts                    6c9af1431eff   6 days ago      578MB
registry.cn-qingdao.aliyuncs.com/metersphere/project-management   v2.10.2-lts                    db5cd5dab9ad   6 days ago      617MB
registry.cn-qingdao.aliyuncs.com/metersphere/performance-test     v2.10.2-lts                    1bed1e5054fa   6 days ago      581MB
registry.cn-qingdao.aliyuncs.com/metersphere/api-test             v2.10.2-lts                    393a521be529   6 days ago      652MB
registry.cn-qingdao.aliyuncs.com/metersphere/gateway              v2.10.2-lts                    c01e39dc6679   6 days ago      381MB
registry.cn-qingdao.aliyuncs.com/metersphere/ui-test              v2.10.2-lts                    ee06c689c0fe   6 days ago      681MB
registry.cn-qingdao.aliyuncs.com/metersphere/node-controller      v2.10.2-lts                    6016d6ddad97   6 days ago      574MB
registry.cn-qingdao.aliyuncs.com/metersphere/eureka               v2.10.2-lts                    2f151ac0f719   6 days ago      313MB
registry.cn-qingdao.aliyuncs.com/metersphere/data-streaming       v2.10.2-lts                    c580c457b8cf   6 days ago      357MB
registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master        5.5-ms5-jdk17                  0cdbec9c44f8   6 weeks ago     650MB
registry.cn-qingdao.aliyuncs.com/metersphere/mysql                8.0.33                         8189e588b0e8   2 months ago    564MB
registry.cn-qingdao.aliyuncs.com/metersphere/minio                RELEASE.2023-04-13T03-08-07Z   8efbd3d7f65f   2 months ago    256MB
registry.cn-qingdao.aliyuncs.com/metersphere/node-chromium        4.8.3                          4317e2094cdd   2 months ago    1.62GB
registry.cn-qingdao.aliyuncs.com/metersphere/node-firefox         4.8.3                          f2120b028da1   2 months ago    1.4GB
registry.cn-qingdao.aliyuncs.com/metersphere/selenium-hub         4.8.3                          751b89b7b366   2 months ago    430MB
registry.cn-qingdao.aliyuncs.com/metersphere/kafka                3.4.0                          d7b26d3aabcf   4 months ago    551MB
registry.cn-qingdao.aliyuncs.com/metersphere/prometheus           v2.42.0                        8cfcb66f4364   4 months ago    232MB
registry.cn-qingdao.aliyuncs.com/metersphere/node-exporter        v1.5.0                         0da6a335fe13   7 months ago    22.5MB
registry.cn-qingdao.aliyuncs.com/metersphere/redis                6.2.6                          f1b6973564e9   17 months ago   113MB
portainer/portainer                                               latest                         580c0e4e98b0   2 years ago     79.1MB

我仅仅使用docker pull portainer/portainer 也是能够下载的,证明非docker配置的问题。

另外我也对docker进行了重启。

systemctl daemon-reload && systemctl restart docker
  • docker ps
    没有一个运行中的容器。。。

2、安装portainer还是报错

Error response from daemon: dial unix /run/containerd/s/28086232b7ff6574d60911694c88bac5557ce09ff7f867821e136716cbc1a9e6: connect: connection refused: unknown.

3、寻求chatgpt的帮助

上面都是docker问题排查的常规手段,比较盲目。
其实,这里它是直指网络问题,非下载镜像的外网网络问题。

该错误通常表示Docker无法与Containerd通信。Containerd是Docker的底层容器运行时。

所以,应该是容器运行时故障:Containerd可能遇到了问题导致无法连接。你可以尝试重启Containerd服务,命令如下:

systemctl restart containerd

4、补充说明

如果以上方法都没有解决问题,可能存在其他底层问题或配置冲突。你可以查看Docker和Containerd的日志文件,以获取更多详细的错误信息。通常情况下,这些日志文件位于/var/log目录下的docker和containerd子目录中。

5、再次安装portainer成功(先删除容器名prtainer)

[root@k8snode1 log]# docker run -d -p 9900:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer docker.io/portainer/portainer
docker: Error response from daemon: Conflict. The container name "/prtainer" is already in use by container "4cc6b4d7a9b1233ce4c1c9c0a1937a1828ede97b0744806e3bd839df49afc62b". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

[root@k8snode1 log]# docker rm -f `docker ps -aq`
4cc6b4d7a9b1

[root@k8snode1 log]# docker run -d -p 9900:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer docker.io/portainer/portainer
02042d719165cf4f59a465cbe2d6e2045c22af0408879f2b54a2dd0419fc7dd4

[root@k8snode1 log]# docker ps
CONTAINER ID   IMAGE                 COMMAND        CREATED         STATUS         PORTS                                       NAMES
02042d719165   portainer/portainer   "/portainer"   5 seconds ago   Up 5 seconds   0.0.0.0:9900->9000/tcp, :::9900->9000/tcp   prtainer

三、总结

现在有chatgpt,之前我们遇到问题都是google/baidu,从上面的这个例子,也可以一定程度地看出孰优孰劣。

经过重启containerd,解决了docker网络通讯问题。容器也都启动成功!!!
在这里插入图片描述

### 解决 Ubuntu 中 Docker 连接被拒绝的问题 当遇到 `Error response from daemon: connection refused` 的错误时,这通常表明 Docker 守护进程未运行或无法正常启动。以下是可能的原因以及解决方案: #### 1. **确认 Docker 是否正在运行** 需要先验证 Docker 守护进程的状态。可以使用以下命令来检查其状态: ```bash sudo systemctl status docker ``` 如果守护进程未运行,则可以通过以下命令重新启动它: ```bash sudo systemctl start docker ``` 此外,为了确保 Docker 在系统重启后自动启动,可启用服务: ```bash sudo systemctl enable docker ``` #### 2. **检查 Docker Socket 权限** 错误也可能由权限不足引起。默认情况下,只有具有管理员权限的用户才能访问 Docker 套接字 `/var/run/docker.sock`。如果当前用户不在 `docker` 组中,可能会导致此问题。 可通过以下命令将用户添加到 `docker` 组: ```bash sudo usermod -aG docker $USER ``` 添加完成后需注销并重新登录以使更改生效[^1]。 #### 3. **排查网络配置冲突** 若存在网络配置冲突(例如端口占用),可能导致 Docker 无法绑定必要的套接字地址。可通过以下方式查看是否有其他程序占用了 Docker 所需的端口: ```bash netstat -tulnp | grep ':2375\|:2376' ``` 如果发现有其他进程占用了这些端口,可以选择停止该进程或将 Docker 更改为不同的监听端口。 #### 4. **清理旧容器和镜像** 资源耗尽也可能是原因之一。定期清理不再使用的容器、卷和镜像是良好的实践方法。执行以下命令删除无用资源: ```bash docker system prune -af --volumes ``` 清理操作有助于释放磁盘空间并减少潜在冲突[^2]。 #### 5. **验证防火墙设置** 某些安全策略或防火墙规则会阻止 Docker 访问外部网络。对于基于 Kubernetes 或 NGINX Ingress 控制器的服务,建议检查相关节点端口和服务暴露情况: ```bash kubectl -n ingress-nginx get svc ingress-nginx-controller ``` 上述命令用于获取 Nginx Ingress Controller 的 NodePort 和 ClusterIP 地址,从而进一步诊断连通性问题[^3]。 --- ### 总结 上述方案涵盖了从基础服务管理到高级网络调试的不同层面。具体实施取决于实际环境中的具体情况。若以上措施仍未能解决问题,推荐查阅更详细的日志文件以定位根本原因。 ```bash sudo journalctl -u docker.service ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天草二十六_简村人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值