Fedora 36下Docker守护进程无法连接问题求助
Docker 服务运行但无法连接&卷存储元数据库超时问题(Fedora 36)
问题背景
操作系统:Fedora 36
系统更新重启后Docker容器无法运行,docker-compose失效,执行以下操作后问题仍存在:
- 启动Docker服务:
sudo service docker start
- 确认服务已启动(
sudo service docker status输出):
redirecting to /bin/systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor p> Active: active (running) since Wed 2022-09-14 10:29:01 MDT; 1s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 2778 (dockerd) Tasks: 22 Memory: 114.0M CPU: 347ms CGroup: /system.slice/docker.service └─ 2778 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/con> Sep 14 10:29:00 fedora dockerd[2778]: time="2022-09-14T10:29:00.385376990-06:00> Sep 14 10:29:00 fedora dockerd[2778]: time="2022-09-14T10:29:00.439821904-06:00> Sep 14 10:29:00 fedora dockerd[2778]: time="2022-09-14T10:29:00.696795461-06:00> Sep 14 10:29:00 fedora dockerd[2778]: time="2022-09-14T10:29:00.839972916-06:00> Sep 14 10:29:00 fedora dockerd[2778]: time="2022-09-14T10:29:00.895624616-06:00> Sep 14 10:29:00 fedora dockerd[2778]: time="2022-09-14T10:29:00.994809032-06:00> Sep 14 10:29:01 fedora dockerd[2778]: time="2022-09-14T10:29:01.017873180-06:00> Sep 14 10:29:01 fedora dockerd[2778]: time="2022-09-14T10:29:01.018007624-06:00> Sep 14 10:29:01 fedora systemd[1]: Started docker.service - Docker Application > Sep 14 10:29:01 fedora dockerd[2778]: time="2022-09-14T10:29:01.035944310-06:00>
5分钟后再次检查状态,服务仍处于运行状态。
出现的错误
- 执行
docker ps -a时收到:
Cannot connect to the Docker daemon at unix:///home/XXXXX/.docker/desktop/docker.sock. Is the docker daemon running?
- 执行
sudo dockerd时收到:
failed to start daemon: error while opening volume store metadata database: timeout
已尝试的排查步骤
- 确认Docker服务正常运行
- 修改
/var/run/docker.sock权限为当前用户:
修改后权限:sudo chown XXXXX:docker /var/run/docker.socksrw-rw---- 1 XXXXX docker 0 Sep 14 10:29 /var/run/docker.sock - 多次重启Docker服务
解决方案
1. 修正Docker客户端的sock路径指向
错误提示连接的是Docker Desktop的sock路径,但你使用的是系统级Docker服务,需让客户端指向正确路径:
- 临时生效:执行
export DOCKER_HOST=unix:///var/run/docker.sock - 永久生效:将上述命令添加到
~/.bashrc或~/.zshrc文件,执行source ~/.bashrc(对应shell配置文件)使变更生效
2. 修复卷存储元数据库超时
该错误多由元数据数据库损坏或锁死导致:
- 停止所有Docker相关服务:
sudo systemctl stop docker sudo systemctl stop docker.socket sudo systemctl stop containerd - 备份Docker数据目录(防止数据丢失):
sudo cp -r /var/lib/docker /var/lib/docker.bak - 删除损坏的数据库文件:
sudo rm -rf /var/lib/docker/volumes/metadata.db - 重启服务:
sudo systemctl start containerd sudo systemctl start docker.socket sudo systemctl start docker - 执行
docker ps -a验证是否恢复
3. 配置Docker组权限(替代手动修改sock权限)
手动修改sock权限会在服务重启后被重置,正确做法是将用户加入docker组:
sudo usermod -aG docker $USER
执行后重新登录或执行newgrp docker使权限生效
内容的提问来源于stack exchange,提问作者TheWebs
相关产品推荐
相关产品推荐

