openwrt 里 docker 数据迁移问题 更改 Docker Root Dir

2021-06-13 19:48:11 +08:00
 AllenHua

v 友们有人试过 openwrt 里迁移 docker 目录的吗 成功了吗,请教一下方案

默认的路径是/opt/docker

# docker info |grep 'Docker Root Dir'
 Docker Root Dir: /opt/docker

我的方案

  1. 先 /etc/init.d/dockerd stop 停止 docker 服务
  2. 再拷贝文件,通过 rsync -av source-path destination-path
  3. 然后再更改 /etc/docker/daemon.json 中的 data-root 字段,改成新的路径。ps: 如果这个 json 文件中没有这个字段,创建即可
  4. 看情况把 docker 容器持久化了的配置文件 volumes 的映射的路径也转移一下
  5. 重新启动 docker daemon ( dockerd )

关于第二点,因为 rsync 比 cp 、mv 更安全 所以建议使用 rsync

但是我失败了…… 后面到了第五步无法启动 dockerd

root@openWrt:/mnt/ThreeTB2/docker# df -hT
Filesystem           Type            Size      Used Available Use% Mounted on
tmpfs                tmpfs           1.9G    208.2M      1.7G  11% /tmp
overlayfs:/overlay   overlay        28.2G     15.5G     11.3G  58% /
tmpfs                tmpfs         512.0K         0    512.0K   0% /dev
cgroup               tmpfs           1.9G         0      1.9G   0% /sys/fs/cgroup
overlayfs:/overlay   overlay        28.2G     15.5G     11.3G  58% /opt/docker
/dev/sdd1            ext4            2.7T      2.0T    523.3G  80% /mnt/ThreeTB2
shm                  tmpfs          64.0M         0     64.0M   0% /opt/docker/containers/3bdcfecf5e554e752927438615be5ae697409762746173430709ca105d39505c/mounts/shm

个人怀疑,/opt/docker 这个挂载点的系统类型是 overlay,而我新建的目录/mnt/ThreeTB2/docker文件系统类型是ext4导致的,但是又说不出来具体什么原因以及应该怎么办。

请教大家有没有什么思路?因为软路由系统盘太小(32GB SATA3 SSD),docker 再 pull 几个镜像磁盘就满了。

2514 次点击
所在节点    Docker
3 条回复
DCCooper
2021-06-13 20:31:33 +08:00
创建 thinpool 先
AllenHua
2021-06-13 20:41:25 +08:00
@DCCooper #1 感觉这适用于 ext4 文件系统下的

正文中的现象应该还是和 overlay 机制有关。看来最好的办法就是整一个大容量的硬盘当作系统盘
lisaac
2021-09-19 06:11:43 +08:00
用 luci-app-dockerman 就能在 gui 下更改
op 下需要更改的是 /etc/config/dockerd 并非 /etc/docker/daemon.json

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/783236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX