"docker load" 在自定义图像上创建一个 <none> 图像名称

"docker load" on custom images creates a <none> image name

当我使用 docker load 命令时,它创建了一个带有 <none> 标签的图像。
我现在将展示如何重现它。

我创建了一个 Dockerfile:

cat > chacha <<EOF
FROM alpine:latest
ENTRYPOINT sh;
WORKDIR /home
EOF  

构建它:

docker build -t chacha -f chacha .

将其导出到文件:

image_id=`docker images chacha -q`
docker save $image_id -o myimage.tar

删除旧图片:

docker rmi chacha

当我加载导出的图像时:

docker load --input myimage.tar

图像名称显示为 <none>

# docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
<none>                                                 <none>              ff35873eb8df        4 minutes ago       4.41 MB

这是使用图像 ID 保存图像时的默认行为。一个图片id可以有多个标签。

例如,在您的情况下,执行 docker tag $image_id chacha2 会创建一个新图像 chacha2,其图像 ID 与您的初始图像相同。

因此,当根据图片 ID docker 保存图片时,守护进程不知道要导出哪个图片的详细信息,最后保存没有 repository/tag 详细信息的图片。

您可能需要的是docker save chacha > myimage.tar。当您加载此 tar 时,导入的图像将包含初始图像的 repository/tag 详细信息。

更多: