更改 Red Hat Linux 上的 Docker 根目录?

更改 Red Hat Linux 上的 Docker 根目录?

我有一个小问题。我有一个全新的 Red Hat Linux 服务器,并使用 Docker CE 的官方存储库安装了适用于 CentOS/Red Hat 的 Docker CE。现在我看到 docker 在 下创建了容器/var/lib/docker,但我的问题是我在 下为我的数据使用了额外的分区/data/docker。如何更改 CentOS/Red Hat 中 Docker 的默认根目录?

我尝试了一些 HOWTO,但遇到了同样的问题。我找不到配置。例如,我搜索以下文件:

  • /etc/default/docker(我认为仅适用于 Debian/Ubuntu)
  • /etc/systemd/system/docker.service.d/override.conf(我的系统上找不到)
  • /etc/docker/daemon.json(我的系统上找不到)

如果我得到 docker 信息,我会看到:

Docker 根目录:/var/lib/docker

答案1

有关控制 Docker 守护进程的 Docker 文档建议独立于平台的方法是:

编辑 /etc/docker/daemon.json 文件以包含该行

{
    "data-root": "/mnt/docker-data",
    (...)
}

where/mnt/docker-data是您希望 docker 映像和容器所在的目录。

然后

sudo systemctl restart docker

您可以通过运行来检查它是否有效

docker info

并查找以 开头的行的内容Docker Root Dir:

答案2

停止所有正在运行的 docker 容器,然后停止 docker 守护进程。将“/var/lib/docker”目录移动到您想要保存此数据的位置。对你来说,这将是:

mv /var/lib/docker /data/

然后在 /var/lib 路径中为此 docker 目录创建符号链接:

ln -s /data/docker /var/lib/docker

启动 docker 守护进程和容器。

答案3

我使用的是 fedora 27 你可以看看 docker deamon 帮助

dockerd --help 
--data-root string                        Root directory of persistent Docker state (default "/var/lib/docker")

停止docker服务

systemctl stop docker

移动 docker 默认文件夹。我移至 /data 文件夹下。

mv /var/lib/docker /data/.

打开服务文件

vi /usr/lib/systemd/system/docker.service

更改 ExecStart 变量的参数。

vi /usr/lib/systemd/system/docker.service

这个矿井。我还添加了调试参数。

ExecStart=/usr/bin/dockerd -D --data-root /data/docker

需要守护程序重新加载

systemctl daemon-reload

你可以开始服务了

systemctl start docker

是否可以在服务启动之前在命令行上进行测试

 dockerd -D --data-root /data/docker

已经完成了。

相关内容