Ubuntu 的 Docker 启动失败/服务异常?
Ubuntu 上 Docker 服务启动失败或异常。按服务状态、日志、端口占用、cgroup 驱动四步定位,区分依赖没装、配置冲突与运行环境不匹配三类原因。
简短答案
Docker 服务启动失败/异常,多因依赖没装全、配置冲突或运行环境不匹配(如 systemd 与 cgroup 不一致)。按「服务状态 → 日志 → 端口/资源 → 配置」四步定位,不要直接重装。
现象对照
| 现象 | 含义 |
|---|---|
服务 failed、日志报缺组件 |
依赖/守护进程没装全 |
| 启动瞬间退出 | 配置文件冲突或残留旧锁 |
| 能起但容器起不来 | cgroup/运行时环境问题 |
排查步骤
# 1. 看服务状态
systemctl status docker --no-pager
# 2. 看启动日志,定位真正报错
sudo journalctl -b -u docker --no-pager | tail -40
# 3. 看端口占用与容器状态
sudo ss -ltnp | grep -E '2375|2376'
sudo docker ps -a
# 4. 重启服务
sudo systemctl restart docker
- 日志报「某组件缺失」:按条目页/官方说明装全 Docker 运行所需组件(包名以条目页为准),勿凭记忆拼。
- 启动即退:清掉冲突的旧配置/锁文件(操作前先备份原配置,见 Ubuntu 26.04.1 服务器条目)。
- cgroup 不匹配:确认 systemd 与 Docker 用的 cgroup 驱动一致,改动需改配置后重启服务,配置项以条目页说明为准。
注意:Docker 在服务器上装得多、桌面版少,部署基线与端口策略见 Ubuntu 26.04.1 服务器条目,各版本总览见 Ubuntu 索引;Debian 上容器基础参考 Debian 索引。
操作小结
systemctl status docker看服务状态。journalctl -u docker读日志找根因。- 端口/锁冲突就清理(先备份配置)。
systemctl restart docker重启验证,仍失败再查 cgroup/依赖。