我刚刚在 Linux CentOs 7 上创建了一个新分区,之后我将 Docker 根目录从 /var/lib/docker 更改为 /data/docker。
在“docker.service”文件中我添加了以下配置:
ExecStart=/usr/bin/dockerd -g /data/docker/ -H fd:// --containerd=/run/containerd/containerd.sock
,之后我将数据从 /var/lib/docker 复制到我的新目录 /data/docker 然后我就这样做了
systemctl 守护进程重新加载
和
systemctl启动docker
但是
服务未启动,我收到此消息:
警告:磁盘上的 docker.service 已更改。运行“systemctl daemon-reload”来重新加载单元。
进程:16925 ExecStart=/usr/bin/dockerd -g /data/docker/ -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE) 主PID: 16925 (code=exited, status=1/FAILURE)
Jun 29 23:26:37 linux.local systemd[1]: docker.service: 主进程退出,代码=退出,状态=1/FAILURE 6 月 29 日 23:26:37 linux.local systemd[1]:无法启动 Docker 应用程序容器引擎。 6 月 29 日 23:26:37 linux.local systemd[1]:单元 docker.service 进入失败状态。 6 月 29 日 23:26:37 linux.local systemd[1]:docker.service 失败。警告:磁盘上的 docker.service 已更改。运行“systemctl daemon-reload”来重新加载单元。
我的Linux版本:
操作系统:CentOS Linux 7(核心)CPE 内核:Linux 3.10.0-1160.90.1.el7.x86_64
Docker 版本:
客户端:Docker 引擎 - 社区版本:24.0.2 API 版本:1.43 Go 版本:go1.20.4 Git 提交:
cb74dfc 内置:2023 年 5 月 25 日星期四 21:55:21 操作系统/Arch:
linux/amd64 上下文:默认服务器:Docker 引擎 - 社区引擎:版本:24.0.2 API版本:1.43(最低版本1.12)Go版本:
go1.20.4 Git 提交:659604f 构建:5 月 25 日星期四 21:54:24 2023 操作系统/Arch:linux/amd64 实验:
false containerd:版本:1.6.21 GitCommit:
3dce8eb055cbb6872793272b4f20ed16117344f8 runc:版本:
1.1.7 GitCommit:v1.1.7-0-g860f061 docker-init:版本:0.19.0 GitCommit:de40ad0
有人知道我应该做什么吗?
我不确定这是否真的是由我使用的 docker 版本引起的,但是我使用的 docker 版本无法识别选项“-g”,因此 docker 服务不知道在哪里docker根目录是。在我检查了 'dockerd' 已知的选项后,发现应该使用的选项是 '--data-root',在我用 '--data-root' 替换 -g' 后,docker.service 可以使用运行新的根目录!
sudo vi /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root /xxx/dockerdata/docker