如何解决Docker启动时报Status: unknown flag: --graph问题

最近在进行Docker环境迁移时,用二制对Docker进行了重新安装,一切配置好之后,启动Docker时,服务启动不起来,使用journalctl -xe命令查看,报出以下错误:

[root@app docker]# journalctl -xe
8月 25 14:25:46 app dockerd[3269]: Status: unknown flag: --graph
8月 25 14:25:46 app dockerd[3269]: See 'dockerd --help'., Code: 125

--graph参数不对的问题 。

经过查找资料发现,Docker在较早的版本中使用了--graph标志来指定Docker的存储驱动和根目录,但在后续版本中,这个标志已被弃用,取而代之的是--data-root标志。

通过docker- version命令分别查看了环境迁移前的版为:docker-20.10.1

环境迁移后的版本为:26.1.1。如下所示:

[root@app system]# docker version
Client:
 Version:           26.1.1
 API version:       1.45
 Go version:        go1.21.9
 Git commit:        4cf5afa
 Built:             Tue Apr 30 11:46:57 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.1
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.9
  Git commit:       ac2de55
  Built:            Tue Apr 30 11:48:27 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.9
  GitCommit:        1c90a442489720eec95342e1789ee8a5e1b9536f
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d

按照要求,把docker.service启动配置文件中的--graph参数修改为--data-root参数,如下所示:

如何解决Docker启动时报Status: unknown flag: --graph问题_第1张图片

图中标红部分,把--graph这一行注掉,换成了--date-root,图中标绿部分。

再重新加载和启动docker,docker成功被启动。如下所示:

重新加载:

[root@app system]# systemctl daemon-reload

启动docker:

[root@app system]# systemctl start docker

查看docker服务状态:

[root@app system]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2024-08-25 14:45:31 CST; 45min ago
     Docs: https://docs.docker.com
 Main PID: 3887 (dockerd)
   CGroup: /system.slice/docker.service
           ├─3887 /app/docker/bin/dockerd --data-root /app/docker/data/lib/docker --userland-proxy-path=/app/docker/bin/docker-proxy
           └─3894 containerd --config /var/run/docker/containerd/containerd.toml

Active:这个状态值已经running,说明docker的--data-root参数已经生效,并且docker服务已成功启动。

你可能感兴趣的:(随手杂记,docker,容器)