【问题标题】:Change Docker (snap) data-root folder更改 Docker(快照)数据根文件夹
【发布时间】:2021-01-13 05:54:53
【问题描述】:

我正在尝试将 docker 图像、容器等的默认数据文件夹更改为不同的路径。 docker 的快照安装在/var/snap/docker/common/var-lib-docker 有这样的文件夹。 从理论上讲,我可以使用deamon.json 中的data-root 选项来改变它。但是,如果我更改 daemon.json 添加 "data-root": "/home/user/docker" docker 将不会启动,因为与标志冲突(它总是有前面描述的默认路径)。

如果我停止它,我可以使用我的自定义路径启动 docker,然后像这样启动它:sudo snap start docker.dockerd --data-root=/home/user/docker。这不漂亮但有效。有没有办法在启动时更改 docker snap 标志或使其更喜欢 daemon.json 选项?

我已阅读 this 存档帖子,该帖子在 docker 版本 17 上处理此类问题,但与我在网上找到的其他几篇材料一样,它并没有多大帮助。我似乎符号链接可能是一种方式...

我使用的是 docker 19.03.11,快照安装在 Ubuntu 20.04 上。

P.s.:新路径位于作为我的主目录安装的第二个 HDD 上。更改路径将节省系统 SSD 的空间。

感谢您的关注。

【问题讨论】:

  • 尝试移动数据并创建符号链接。如果没有,那么您可能想探索/etc/docker/daemon.json,您可以在其中设置新位置。
  • 你有想过这个吗?
  • 根据我的经验,任何更改此设置的尝试都会导致 docker 无法启动。

标签: docker ubuntu-20.04


【解决方案1】:

https://github.com/docker-snap/docker-snap/issues/3https://askubuntu.com/questions/550348/how-to-make-mount-bind-permanent 看来,虽然不是完美但可行的解决方案似乎是/var/snap/docker/common/var-lib 之间的绑定挂载 -docker/home/username/docker 这是我在使用 snap 安装 docker 之前拥有的上一个 docker data-root。

首先,清除 daemon.json 中的 data-root 选项。

然后使用以下命令在 /etc/fstab 末尾添加以下内容:

echo '/home/username/docker /var/snap/docker/common/var-lib-docker none bind' >> /etc/fstab

重启后,您的 docker 数据根目录将存储在 /home/username/docker

【讨论】:

  • 这对旧的 /var/snap/docker/common/var-lib-docker 内容有什么影响?我应该担心吗?
  • 当目标文件夹开始空白时,我最终得到Server: ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? errors pretty printing info
  • 我认为你不应该关心旧的 docker 目录,这有点像拥有两个 docker 环境。
猜你喜欢
  • 2016-11-18
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多