自定义映像上的"docker load"创建<none>映像名称



当我使用 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将创建一个与初始图像具有相同映像 ID 的新映像chacha2

因此,当根据映像 ID 保存映像时,docker 守护程序不知道要导出哪个映像的详细信息,最后保存没有存储库/标记详细信息的映像。

您可能需要的是docker save chacha > myimage.tar。加载此 tar 时,导入的映像将包含初始映像的存储库/标记详细信息。

更多:

  • 码头工人保存
  • 相关 GitHub 问题
  • 相关堆栈溢出问题

最新更新