如何使用 Dockerfile 中保存为 tar 文件的 docker 映像作为父映像

Mad*_*uri 6 docker dockerfile

我正在将图像保存到类似这样的 tar 文件中

docker save myimage:latest > myimage.tar.gz然后我尝试在我的 Dockerfile 中使用这个 tar 文件,如下所示

FROM scratch
ADD myimage.tar.gz
Run Code Online (Sandbox Code Playgroud)

然而构建失败。有人可以帮我一下如何在 Dockerfile 中发送 tar 文件吗

Dav*_*aze 5

如果您有docker savetarball,则需要docker load先获得它才能使用。当您这样做时,将会打印出已加载图像的名称和标签。FROM然后,您可以在Dockerfile 行中使用它,就像任何其他本地映像一样。

$ docker load -i myimage.tar.gz

Loaded image: my/image:and-its-tag
$ head -1 Dockerfile
FROM my/image:and-its-tag
Run Code Online (Sandbox Code Playgroud)

如果您docker pushdocker save生成的图像,它将具有原始图像的完整副本。

(在正常操作中,您不需要docker save;更喜欢像 Docker Hub 这样的注册表服务,像 GCR/ACR/ECR 这样的云托管服务,或者运行您自己的服务。您不能真正直接使用保存的映像 tarfile 来执行任何操作。)