我在/var/lib/docker
中安装了一个docker,其中包含几个映像和大约150gb的数据。该设置使用overlayfs
作为其存储驱动程序。/var/lib/docker/overlay
下的每个层都有几个目录保存实际数据。分区大小为160G
我的要求是将docker目录从/var/lib/docker
复制到一个1TB的新磁盘,以便我指示docker从这个新分区启动并继续使用我的旧映像。
现在的问题是,当我使用rsync
或cp
命令与-a
一起将/var/lib/docker
复制到新分区时,而不是总共150G实际数据,总复制数据将达到600G(并且还在计数…)。
Docker也停止了,但不确定OS如何查看160G的数据并将其复制到600G+中。我希望它不是覆盖(合并目录)。df -aTh
没有覆盖信息。它也没有帮助卸载内核覆盖驱动程序rmmod overlay
我怎么可能在不进行任何扩展/合并的情况下,按原样复制这些数据呢
原来docker在/var/lib/docker/overlay
下的那些目录中使用hardlinks
。使用-H
和rsync (copy hardlinks as hardlinks)解决了这个问题。
rsync -avPHSX /var/lib/docker /new/partition/