【问题标题】:Saving docker container image to a different directory than root将 docker 容器映像保存到与 root 不同的目录
【发布时间】:2021-11-11 13:56:49
【问题描述】:

我正在使用 Docker 18.09,我正在尝试为我的工作构建一些图像。问题是图像总是在根目录中,确切地说/var/lib/docker/overlay2/var/docker/ 中。由于我的根目录中没有足够的空间,所以我想将此默认目录更改为我的另一个磁盘,但我在互联网上查看的所有解决方案都没有为我工作。

我已经完成了这些,但它们都不起作用:

https://forums.docker.com/t/how-do-i-change-the-docker-image-installation-directory/1169

https://medium.com/@ibrahimgunduz34/how-to-change-docker-data-folder-configuration-33d372669056

How to change the docker image installation directory?

【问题讨论】:

标签: docker


【解决方案1】:

存放docker相关数据(容器、镜像等)的默认目录是/var/lib/docker

要覆盖此默认位置,请使用-g option

在启动 docker 守护进程时使用-g option

dockerd -g /mnt/path/to/docker/dir

在您的情况下,最好的选择是在某个挂载点将一些外部存储连接到机器。并在 -g 选项中提及该挂载点。

希望这会有所帮助。

更新:

-g option 已弃用。使用--data-root 选项。检查this

【讨论】:

  • 对于 dockerd Docker 版本 18.09.7,构建 2d0083d 没有这样的 -g 选项
  • 试试--graph 选项。
  • 没有帮助。同样的问题。
  • 请在尝试--data-root 选项后使用结果更新问题。然后我可以尝试回答。
【解决方案2】:

当我也遇到这个问题时,我使用了以下技术,并且使用具有更大大小的不同文件系统是唯一可用的选项。

  1. 停止 docker 服务。 sudo systemctl stop docker.service

  2. 编辑 docker.service 文件以在 ExecStart 行中包含新目录,如下所示。 ExecStart=/usr/bin/dockerd -g /u01/docker -H fd:// --containerd=/run/containerd/containerd.sock

重新加载守护进程 sudo systemctl 守护进程重新加载

重启泊坞窗 sudo systemctl start docker.service

注意:docker.service 文件路径是在你运行 systemctl stop docker.service 时显示的

解决这个问题的一个更简单直接的方法是在移动现有文件夹后简单地创建一个指向新路径的符号链接,如下所示。

sudo systemctl stop docker.service

sudo mv /var/lib/docker/ /

sudo ln -s / /var/lib/docker

sudo systemctl start docker.service

【讨论】:

    猜你喜欢
    • 2015-02-18
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多