Ubuntu 20.04下Docker已运行但docker-compose无法连接守护进程求助
Docker Compose 无法连接 Docker 守护进程的排查方案
检查版本兼容性
Docker Compose 和 Docker Engine 版本不匹配可能引发连接问题。执行以下命令查看两者版本:sudo docker --version sudo docker-compose --version确保版本适配,比如 Docker Engine 20.10.x 对应 Docker Compose 1.29.x 及以上版本。若不兼容,重新安装对应版本的 Docker Compose。
验证 Docker 守护进程监听配置
Docker 默认监听 Unix Socket,若配置强制使用 TCP 监听,会导致 Docker Compose 连接失败。检查配置文件:- 查看配置内容:
cat /etc/docker/daemon.json - 若存在
"hosts": ["tcp://0.0.0.0:2375"]这类配置,需添加 Unix Socket 路径,修改为:{ "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } - 重启 Docker 服务:
sudo systemctl restart docker
- 查看配置内容:
检查 DOCKER_HOST 环境变量
错误设置的DOCKER_HOST会引导 Docker Compose 连接错误地址。执行以下命令查看:echo $DOCKER_HOST若输出不为空或不是
unix:///var/run/docker.sock,执行命令清除:unset DOCKER_HOST之后重新运行
sudo docker-compose up。修复 Docker Socket 权限
即使使用 sudo,Socket 文件权限异常也可能导致连接失败。查看权限:ls -l /var/run/docker.sock正常应属于
root:docker组。若权限错误,执行:sudo chown root:docker /var/run/docker.sock sudo chmod 660 /var/run/docker.sock重新安装 Docker Compose
你已重装 Docker,但 Docker Compose 本身可能存在损坏。卸载后重新安装:- 卸载现有版本:
sudo apt remove docker-compose -y - 下载官方稳定版(替换版本号为最新版,如 v2.20.2):
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - 添加执行权限:
sudo chmod +x /usr/local/bin/docker-compose - 验证安装:
docker-compose --version
- 卸载现有版本:
内容的提问来源于stack exchange,提问作者Hal Burgiss
相关产品推荐
相关产品推荐

