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

使Docker使用/加载.tar映像,而不将其复制到/var/lib/。。?,docker,Docker,我知道您可以将docker容器/图像导出为.tar文件,然后在另一个系统上使用docker load进行导入。问题是docker load将图像放入/var/lib/。。而且主机系统的空间非常小。有没有办法让docker直接从tar文件运行图像,或者使用文件位置的工作目录 否则,唯一的解决办法就是使用符号链接欺骗docker?当您使用docker load时,您至少需要: 有足够的空间容纳原始tar文件;及 在/var/lib/docker/tmp中有足够的空间容纳未压缩的tar文件;及 在D

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


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

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

  • 有足够的空间容纳原始tar文件;及
  • /var/lib/docker/tmp
    中有足够的空间容纳未压缩的tar文件;及
  • 在Docker图像空间中有足够的空间容纳图像内容
图像内容的实际格式不同于tar文件的内容,并且是特定于安装的(devicemapper与aufs与overlay2安装看起来会有所不同)。没有办法绕过这个直接“注入”一个tar文件

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


如果系统是云托管系统,默认根磁盘很小,考虑销毁当前实例并提供足够的存储的新实例。

通常您为“代码>/VAR/LB/DOCKER < /代码>安装一个单独的卷,以便在根文件系统和所有DOCKER层之间获得一些隔离。如果DOCKER会在没有加载适当的负载的情况下拾取仅出现在那里的图像,那么您是否知道?只剩下原始的挂载计划/symlink/var/lib/docker:(,希望它能找到“出现”在那里的图像,而不必让它重新复制所有的图像。