更改 Docker(快照)数据根文件夹

Change Docker (snap) data-root folder

我正在尝试将 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 快照标志或使其更喜欢 daemon.json 选项?

我读过 this 存档 post,它在 docker 版本 17 上处理了此类问题,但它并没有像其他几个 material 我在网上找的。我似乎象征性的 link 可能是一种方式...

我正在使用 docker 19.03.11,快照安装在 Ubuntu 20.04.

P.s.: 新路径位于作为我的主目录安装的第二个硬盘上。更改路径将在我的系统 SSD 中保存 space。

感谢关注

https://github.com/docker-snap/docker-snap/issues/3 and https://askubuntu.com/questions/550348/how-to-make-mount-bind-permanent 开始,不完美但可行的解决方案似乎是 /var/snap/docker/common/var-lib-docker[= 之间的绑定挂载 26=] 和 /home/username/docker 这是我在使用 snap 安装 docker 之前的前一个 docker 数据根目录。

所以首先,清除daemon.json中的数据根选项。

然后在/etc/fstab末尾添加如下命令:

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

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