如何使用overlay*as-is*复制/ var/lib/docker with overlayfs目录结构,而不增加存储空间

Van*_*gaS 6 rsync kernel overlays docker coreos

我有一个docker安装,包含几个图像和大约150Gig的数据/var/lib/docker.此设置overlayfs用作其存储驱动程序.在/var/lib/docker/overlay保存实际数据的情况下,每个层都有几个目录.分区大小为160G.

我的要求是将docker目录复制/var/lib/docker到1TB的新磁盘,以便我指向docker从这个新分区开始并继续使用我的旧图像.

现在的问题是,当我使用一个rsync或一个cp命令-a来复制/var/lib/docker到新分区时,而不是总共150G的实际数据,复制的总数据将达到600G(并且计数...).

Docker也停止了,但不确定操作系统如何查看160G数据并复制到600G +.我希望它不是overlayfs(合并目录).没有重叠信息df -aTh.它也没有帮助卸载内核overlayfs驱动程序rmmod overlay

我怎么可能按原样复制这些数据,而不进行任何扩展/合并.

Van*_*gaS 11

事实证明,docker正在hardlinks这些目录中使用/var/lib/docker/overlay.使用-Hrsync(将硬链接复制为硬链接)解决了这个问题.

rsync -avPHSX /var/lib/docker /new/partition/
Run Code Online (Sandbox Code Playgroud)

  • 自我注意,如果复制到另一台服务器,不要忘记在该服务器上重新启动 docker (2认同)