如何重命名 Docker 镜像名称?

20

我通过 docker save 命令保存了一个格式为.tar的文件,然后通过 docker load 命令将其加载到另一台服务器上。当它成功时,Docker 给了我以下提示:

The image file:V2.0.0Beta1-test already exists, renaming the old one with ID sha256:46952aea8dd30da5a2645d28930381c0ed5f72acd4fac43ea8556cc360d22cf7 to empty string
Loaded image: file:V2.0.0Beta1-test

老图片需要保存,新图片也需要保存。现在我该怎么做?


你可能正在寻找 docker tag 命令。 - Henry
你的建议是我更改旧标签?但现在我找不到旧图像。我该如何找到它?或者当我docker加载图像时,操作失败了?@Henry - l zhu
1个回答

29
你可以使用 docker tag 命令为 Docker 镜像打标签,实际上这会创建一个由你在 docker tag 命令中指定的名称的镜像。

创建一个名为 TARGET_IMAGE 的标签,它引用 SOURCE_IMAGE

给 ID 引用的镜像打标签

将本地 ID 为“0e5574283393”的镜像打标签为“fedora”仓库的“version1.0”:

$ docker tag 0e5574283393 fedora/httpd:version1.0

假设你有一个名为Beta1-test的镜像,你可以这样打标签

docker tag Beta1-test Beta1-test_old

这将把 Beta1-test 镜像打上新标签 Beta1-test_old。

Docker 标签只是指向你的镜像的一种方式。所以你可以使用以下命令删除Beta1-test

docker rmi -f Beta1-test

现在,你已经有了带有新标签Beta1-test_old的镜像。

现在你可以像这样构建镜像:docker build -t Beta1-test

这个Beta1-test就是构建之后的新镜像,而我们用 Beta1-test_old 打了之前的标签。

你现在有两个名字分别为Beta1-testBeta1-test_old的镜像。

你可以使用这个命令查看 Docker 镜像。

docker images

或者
docker images Beta1-test

3
你的回答很有帮助。我尝试了一些方法,它们起到了作用。我更改了旧文件的标签,但是当我列出图像时,我发现关于旧文件有两条记录,唯一不同的是标签不同。所以我删除了其中一条记录。然后我加载了新文件,它也起作用了。新文件和旧文件都已保存,我们可以通过标签将它们区分开来。非常感谢!@Adiii - l zhu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接