题 将docker数据(图像和容器)移动到具有不同FS的驱动器


我计划将docker数据(图像和容器)移动到单独的驱动器,因为它们需要很多空间。

据我所知,我可以动了 /var/lib/docker 分离驱动器并创建它的软链接。但我已经读过BTRFS是docker的最佳文件系统选项。

但我怀疑将外部驱动器格式化为BTRFS并将现有文件夹移动到它是不够的。我看到这个文件夹的内容取决于使用文件系统。

如何在不同文件系统的外部驱动器上正确移动(重新创建)docker文件夹(图像和容器)?


6
2018-05-01 12:19






答案:


正如您所说,只是将docker映像/容器从默认的AUFS移动或复制到BTRFS格式化的驱动器是行不通的。因此,作为第一步,您可以将所有容器作为图像提交并使用 docker save 命令将图像保存为.tar文件,然后一旦准备好docker使用btrfs,就运行 docker load 将图像加载到新的存储驱动程序中。

步骤大致如下 - 这就是我在Ubuntu 14.10框中所做的 -

  • 保存图像
    docker save IMAGEID > /tmp/redis.tar
  • 准备btrfs
 mkfs.btrfs / dev / sdb
 mkdir / var / lib / docker-btrfs
 mount / dev / sdb / var / lib / docker-btrfs /
  • 停止docker并设置docker以利用btrfs并运行它。
服务码头停止
docker -d -s btrfs --graph =“/ var / lib / docker-btrfs”-H unix:///var/run/docker.sock

上述步骤也可以通过修改/ etc / default / docker来完成。

  • 加载图像。
docker load --input /tmp/redis.tar

您应该能够从此处查看图像并运行容器。对于容器,您也可以尝试 export 和 import 方法,我从来没有尝试过那个。


6
2018-05-02 16:53