使Docker使用/加载.tar映像而不将其复制到/ var / lib / ..?

时间:2019-03-11 23:37:32

标签: docker

我知道您可以将docker容器/图像导出为.tar文件,然后在另一个系统上使用docker load导入它。问题是docker负载将映像放置到/ var / lib / ..并且主机系统的空间很小。有没有办法让docker直接从tar文件运行图像,或使用文件位置的工作目录?

否则,唯一的办法就是用符号链接欺骗docker?

1 个答案:

答案 0 :(得分:2)

使用docker load时,您至少需要:

  • 足够的空间来保存原始tar文件;和
  • 足够的空间将未压缩的tar文件保存在/var/lib/docker/tmp中;和
  • 足够的空间将图像内容保存在Docker图像空间中。

图像内容的实际格式与tar文件的内容不同,并且是特定于安装的(devicemapper与aufs与overlay2安装看起来会有所不同)。无法绕过此方法而直接“注入” tar文件。

如果磁盘空间确实很紧张,我认为设置Docker注册表并使用docker pull会需要较少的空间(我的直接猜测是图像的大小加上单个最大层的大小),并且通常更易于管理。

如果该系统是具有默认根磁盘很小的云托管系统,请考虑销毁当前实例并配置一个具有足够存储空间的新实例。