AllenHua
V2EX  ›  Docker

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

By AllenHua at 2021 年 6 月 13 日 · 3924 次点击

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 几个镜像磁盘就满了。

第 1 条附言  ·  2021 年 6 月 13 日

20210613203858.png

openwrt 可能需要对磁盘分区,使用一个专门的分区然后如上图所示,将其挂载

3 条回复  •  2021-09-19 06:11:43 +08:00
DCCooper
   1
DCCooper  
   2021 年 6 月 13 日 via iPhone
创建 thinpool 先
AllenHua
   2
AllenHua  
OP
   2021 年 6 月 13 日
@DCCooper #1 感觉这适用于 ext4 文件系统下的

正文中的现象应该还是和 overlay 机制有关。看来最好的办法就是整一个大容量的硬盘当作系统盘
lisaac
   3
lisaac  
   2021 年 9 月 19 日 via iPhone
用 luci-app-dockerman 就能在 gui 下更改
op 下需要更改的是 /etc/config/dockerd 并非 /etc/docker/daemon.json
© 2026 V2EX · 27ms · 3.9.8.5