解决docker启动失败的错误“Status: unknown flag: --graph”

最近服务器重启以后docker启动失败了,使用以下命令查看 Docker 的日志文件以获取更详细的错误信息。

bash 复制代码
journalctl -u docker.service -e

9月 05 10:50:06 iZj6c94a19bsvkhti6zw6oZ dockerd4379: Status: unknown flag: --graph

9月 05 10:50:06 iZj6c94a19bsvkhti6zw6oZ dockerd4379: See 'dockerd --help'., Code: 125

9月 05 10:50:06 iZj6c94a19bsvkhti6zw6oZ systemd1: docker.service: main process exited, code=exited, status=1/FAILURE

9月 05 10:50:06 iZj6c94a19bsvkhti6zw6oZ systemd1: Failed to start Docker Application Container Engine.

9月 05 10:50:06 iZj6c94a19bsvkhti6zw6oZ systemd1: Unit docker.service entered failed state.

9月 05 10:50:06 iZj6c94a19bsvkhti6zw6oZ systemd1: docker.service failed.

9月 05 10:50:09 iZj6c94a19bsvkhti6zw6oZ systemd1: docker.service holdoff time over, scheduling restart.

9月 05 10:50:09 iZj6c94a19bsvkhti6zw6oZ systemd1: Stopped Docker Application Container Engine.

9月 05 10:50:09 iZj6c94a19bsvkhti6zw6oZ systemd1: start request repeated too quickly for docker.service

9月 05 10:50:09 iZj6c94a19bsvkhti6zw6oZ systemd1: Failed to start Docker Application Container Engine.

9月 05 10:50:09 iZj6c94a19bsvkhti6zw6oZ systemd1: Unit docker.service entered failed state.

9月 05 10:50:09 iZj6c94a19bsvkhti6zw6oZ systemd1: docker.service failed.

错误原因:

从提供的日志信息中,可以看到 Docker 服务启动失败的主要原因是 --graph 这个未知的标志(flag)。这个标志在较新版本的 Docker 中已经被废弃,并且不再被支持。Docker 现在使用 --data-root 标志来指定 Docker 数据的存储位置。

解决方案:

编辑 Docker 服务文件:

编辑 /etc/systemd/system/docker.service.d/ 目录下的 devicemapper.conf 文件,找到包含 --graph 的行,并将其替换为 --data-root。

bash 复制代码
ExecStart=/usr/bin/dockerd --graph=/home/www1/docker/lib/docker

将其更改为:

bash 复制代码
ExecStart=/usr/bin/dockerd --data-root=/home/www1/docker/lib/docker

重新加载 systemd 配置:

在修改配置文件后,需要重新加载 systemd 的配置,以确保更改生效:

bash 复制代码
sudo systemctl daemon-reload

重启 Docker 服务:

bash 复制代码
sudo systemctl restart docker

检查 Docker 服务状态:

bash 复制代码
sudo systemctl status docker
相关推荐
黄大刀1 小时前
DataPulse一款开箱即用的SCADA(四)-历史记录
运维·scada·动环
归秋1423 小时前
2026 企业 AI 办公工具选型指南:从评估框架到产品适配
大数据·运维·人工智能
Android系统攻城狮3 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
硅基手札5 小时前
【Linux内核专栏 14】网络协议栈
linux·运维·网络协议
工作10年+,存储芯片行业7 小时前
Linux NVMe 中断排查与性能优化:CPU 亲和性
linux·运维·服务器·windows·性能优化·ssd·pcie
快乐の番薯7 小时前
卷王问卷考试系统自动化功能测试
运维·功能测试·自动化
一号弯8 小时前
装完LINUX,请先新建日常用户
linux·运维·服务器
许彰午8 小时前
03-Linux环境准备依赖包内核参数与用户组
linux·运维·服务器·数据库
阳光九叶草LXGZXJ9 小时前
达梦数据库-报错-16-MERGE INTO提示:无效的列名[XX]
linux·运维·数据库·sql·学习
sbjdhjd9 小时前
云安全 | Docker 容器逃逸复盘(二):2375 未授权接口如何突破容器管理边界
网络安全·docker·云原生·数据挖掘·开源·云计算·云安全