Debian 11中docker-ce服务启动失败,寻求技术帮助
Debian 11 Docker-CE 启动失败排查与修复
问题现象
在Debian GNU/Linux 11系统中安装或启动docker-ce时出现服务启动失败、dpkg配置出错的问题,客户端无法连接Docker守护进程,具体信息如下:
启动失败错误信息
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. invoke-rc.d: initscript docker, action "start" failed. ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) TriggeredBy: ● docker.socket Docs: https://docs.docker.com Process: 145292 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE) Main PID: 145292 (code=exited, status=1/FAILURE) CPU: 148ms dpkg: error processing package docker-ce (--configure): installed docker-ce package post-installation script subprocess returned error exit status 1 Processing triggers for man-db (2.9.4-2) ... Errors were encountered while processing: docker-ce E: Sub-process /usr/bin/dpkg returned an error code (1)
docker version 输出
Client: Docker Engine - Community Version: 23.0.3 API version: 1.42 Go version: go1.19.7 Git commit: 3e7cbfd Built: Tue Apr 4 22:03:23 2023 OS/Arch: linux/amd64 Context: default Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker info 输出
Client: Context: default Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) Version: v0.10.4 Path: /usr/libexec/docker/cli-plugins/docker-buildx compose: Docker Compose (Docker Inc.) Version: v2.17.2 Path: /usr/libexec/docker/cli-plugins/docker-compose Server: ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? errors pretty printing info
排查修复步骤
1. 检查依赖服务containerd状态
Docker依赖containerd运行,先确认该服务是否正常:
systemctl status containerd
如果服务未启动,执行以下命令启动并设置开机自启:
systemctl start containerd systemctl enable containerd
2. 查看Docker Daemon详细启动日志
通过journalctl获取docker服务的实时错误日志,定位具体失败原因:
journalctl -u docker.service -f
常见错误包括:配置文件格式错误、存储驱动不兼容、目录权限问题等。
3. 验证Docker配置文件格式
默认配置文件/etc/docker/daemon.json如果存在格式错误,会导致dockerd启动失败。验证格式:
python3 -m json.tool /etc/docker/daemon.json
如果格式错误,修正后重启docker;若不确定配置正确性,可暂时重命名配置文件后重试:
mv /etc/docker/daemon.json /etc/docker/daemon.json.bak systemctl restart docker
4. 修复dpkg配置异常
由于dpkg处理docker-ce包时出错,先尝试重新配置所有未完成的包:
dpkg --configure -a
若仍无法解决,彻底卸载并重新安装docker-ce:
# 卸载相关组件 apt purge docker-ce docker-ce-cli containerd.io # 清理残留数据 rm -rf /var/lib/docker /var/lib/containerd # 重新安装 apt update apt install docker-ce docker-ce-cli containerd.io
5. 检查Docker Socket权限
确保/var/run/docker.sock的权限正确,将当前用户加入docker组(可选,避免每次用sudo):
usermod -aG docker $USER # 重新登录后生效
内容的提问来源于stack exchange,提问作者user13249509
相关产品推荐
相关产品推荐

