systemd是Linux中管理Docker守护进程的最常用方式,支持启停、开机自启、日志查看和配置重载;需用sudo systemctl status/start/stop/enable/restart docker等命令操作,并通过journalctl和daemon.json排查异常。Docker 守护进程(`dockerd`)在 Linux 系统中通常以 systemd 服务形式运行,系统服务管理是最常用、最可靠的控制方式。掌握这套方法,能确保守护进程稳定启停、开机自启,并快速响应配置变更。
查看服务状态与基本信息
确认 docker 服务是否正常运行:
-
检查当前状态:
sudo systemctl status docker—— 显示运行状态、最近日志、启用状态等 -
查看服务单元文件位置:
systemctl cat docker—— 可看到实际加载的 service 文件路径(通常是/lib/systemd/system/docker.service) -
列出依赖与触发器:
systemctl list-dependencies docker—— 有助于排查启动失败原因(如依赖的containerd未就绪)
启停与重载操作
日常运维中高频使用的命令:
-
启动服务:
sudo systemctl start docker -
停止服务:
sudo systemctl stop docker(注意:默认会终止所有运行中容器,除非配置了"live-restore": true) -
重启服务:
sudo systemctl restart docker—— 修改/etc/docker/daemon.json后必须执行此操作才能生效 -
重载配置(不中断容器):
sudo systemctl reload docker—— 仅对支持热重载的配置项有效(如部分日志参数),多数场景仍需restart
设置开机自启与禁用
确保 Docker 在系统启动时自动就绪:
-
启用开机自启:
sudo systemctl enable docker—— 创建软链接到/etc/systemd/system/multi-user.target.wants/docker.service -
禁用开机自启:
sudo systemctl disable docker -
立即启用并启动:
sudo systemctl enable --now docker
排查常见服务异常
当 systemctl status docker 显示 failed 或 activating (auto-restart),可按顺序检查:
- 运行
sudo journalctl -u docker -n 50 -e查看最近 50 行服务日志,重点关注 ERROR 或 panic 关键字 - 检查
/etc/docker/daemon.json是否存在语法错误(JSON 不允许注释、逗号结尾等);可用python3 -c "import json; json.load(open('/etc/docker/daemon.json'))"验证 - 确认
/var/lib/docker所在分区是否有足够空间和正确权限(需 root 可读写) - 检查是否与其他服务冲突,例如已占用
2375端口或/var/run/docker.sock被误删











