You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker启动失败求助:systemctl启动docker.service报错退出码1

Docker启动失败的排查与解决步骤

以下是针对systemctl start docker启动失败的具体排查方案,按优先级执行:

  • 提取详细错误日志
    先获取Docker启动失败的具体错误信息,这是排查核心依据:

    journalctl -xeu docker.service | tail -50
    

    日志通常会明确指出失败原因,比如配置语法错误、依赖服务异常、权限冲突等。

  • 检查Docker配置文件语法
    /etc/docker/daemon.json若存在语法错误(如多余逗号、括号不匹配),会直接导致启动失败。验证配置格式:

    # Debian/Ubuntu可先安装工具:apt install jsonlint
    jsonlint /etc/docker/daemon.json
    

    修正错误后执行systemctl daemon-reload,再尝试启动Docker。

  • 验证依赖服务状态
    Docker依赖containerd服务,确保其正常运行:

    systemctl status containerd
    

    若未启动,先启动并设置开机自启:

    systemctl start containerd
    systemctl enable containerd
    

    之后再执行systemctl start docker。

  • 清理Docker运行时残留
    残留的socket或pid文件可能导致启动冲突,执行以下命令清理:

    # 杀掉所有Docker相关进程
    pkill -f docker
    # 删除残留运行时文件
    rm -f /var/run/docker.sock /var/run/docker.pid /var/run/containerd/containerd.sock
    

    清理完成后重新启动Docker。

  • 检查磁盘空间
    磁盘空间不足会导致Docker无法创建必要运行时文件,检查分区使用情况:

    df -h
    

    重点关注/var/lib/docker所在分区的剩余空间,若不足,清理无用镜像、容器或冗余文件后再启动。

  • 临时关闭安全策略测试
    SELinux或AppArmor的限制可能阻止Docker启动,可临时关闭验证:

    # 临时关闭SELinux(重启后恢复)
    setenforce 0
    # 临时关闭AppArmor(Debian/Ubuntu)
    systemctl stop apparmor
    

    若启动成功,再针对性调整安全策略规则,避免长期关闭带来风险。

  • 重新安装Docker(最后手段)
    若以上方法均无效,先备份镜像容器数据,再卸载重装Docker:

    # 备份数据
    cp -r /var/lib/docker /var/lib/docker_backup
    # Debian/Ubuntu环境卸载Docker
    apt purge docker-ce docker-ce-cli containerd.io
    rm -rf /var/lib/docker /var/lib/containerd
    # 重新安装Docker
    apt update && apt install docker-ce docker-ce-cli containerd.io
    

    恢复备份数据后启动Docker。

内容的提问来源于stack exchange,提问作者Clara Coelho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:52:51