我知道您可以将 docker 容器/图像导出为 .tar 文件,然后在另一个系统上使用 docker load 来导入它。问题是 docker load 将图像放入/var/lib/.. 并且主机系统的空间非常小。有没有办法让 docker 直接从 tar 文件运行图像,或者使用文件位置的工作目录?
否则,唯一的手段是使用符号链接(symbolic link)来欺骗 docker?
最佳答案
当您使用 docker load
,你至少需要:
/var/lib/docker/tmp
中的未压缩 tar 文件;和 镜像内容的实际格式与 tar 文件的内容不同,并且是特定于安装的(devicemapper、aufs 和 overlay2 安装看起来会有所不同)。没有办法绕过这一点并直接“注入(inject)”一个 tar 文件。
如果磁盘空间真的很紧,我想设置一个 Docker 注册表并使用
docker pull
相反将需要更少的空间(我的直接猜测是图像的大小加上单个最大层的大小),并且通常更容易管理。如果系统是一个云托管系统,不幸的是,默认根磁盘很小,请考虑销毁当前实例并配置一个具有足够存储空间的新实例。
关于docker - 让 Docker 使用/加载 .tar 镜像而不将其复制到/var/lib/..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55111969/