当我使用 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 问题
- 相关堆栈溢出问题