Docker保存/加载丢失原始映像存储库/名称/标记

Ziz*_*zou 11 docker

我正在使用Docker 1.12.6.

我从Docker注册表中提取了一个图像.我已使用该docker save命令将图像导出为tar文件.

我删除了原始图像和容器并使用加载导出的图像docker load -i myImage.tar.

现在,在运行时docker images我注意到我的图像已丢失其存储库/标记信息:

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              5fae4d4b9e02        8 weeks ago         581.3 MB
Run Code Online (Sandbox Code Playgroud)

为什么会出现此行为?如何保留原始图像名称?

Ben*_*ari 6

我遇到了同样的问题,因此我使用了以下命令来手动修复它:

docker tag <Image-ID> <desired Name:Tag>

参考


[ 注意 ]:

不一致:docker save image-repo-name-> docker load 恢复名称,docker save SHA-> docker load没有名称或标签, docker save name:latest-> docker load没有名称或标签。

当前(和正确的)行为如下:

docker save repo
Run Code Online (Sandbox Code Playgroud)

将所有标记的图像和父项保存在存储库中,并创建一个存储库文件,列出标记

docker save repo:tag
Run Code Online (Sandbox Code Playgroud)

将带标签的图像+父项保存在回购中,并创建一个存储该标签的存储库文件

docker save imageid
Run Code Online (Sandbox Code Playgroud)

保存图像+父级,不创建存储库文件。保存仅与图像有关,并且标记被设计遗漏,并且作为练习供用户根据自己的命名约定进行填充。

参考


csu*_*007 6

我遇到了同样的问题,我意识到这是由于docker save命令而发生的。如果我将“ docker save”命令与“ imageid”一起使用,那么在加载映像时,我将丢失存储库和标签名称。例:

docker save -o ubuntu-18.04.tar ea4
Run Code Online (Sandbox Code Playgroud)

但是,如果我在“ repo:tag”中使用“ docker save”命令,则在加载映像时将能够维护我的存储库和标签名称。例:

docker save -o ubutu-18.04.tar ubuntu:18.04
Run Code Online (Sandbox Code Playgroud)


Tal*_*sar 1

单个图像 ID可以有多个名称/标签,因此在将图像保存到 tar 球或从 tar 球加载图像后,我预计会发生丢失名称和标签的情况。

模式详细信息在此处的讨论中