1

码头工人,像我把我的搬运工像我的私人注册一次,但是当我想再次推的形象我得到了这些消息:更新注册表

06-Sep-2016 10:54:10 Error response from daemon: Conflict: Tag latest is already set to image 2bcc77ac3ef5f5ce0442d9cae3652c0464b8f266db9ccd65b1638aadf60ebc39, if you want to replace it, please use -f option 
The push refers to a repository [localhost.com:5000/proj/proj1] (len: 1) 
06-Sep-2016 10:54:10 2bcc77ac3ef5: Image already exists 
06-Sep-2016 10:54:10 2bcc77ac3ef5: Image already exists 
06-Sep-2016 10:54:10 4f3b96c826b8: Image already exists 
06-Sep-2016 10:54:11 84c030e02a98: Image already exists 
06-Sep-2016 10:54:11 c7282372eb99: Image already exists 
06-Sep-2016 10:54:11 1b449d63ca4e: Image already exists 

我跑在更新我的形象这些命令注册表每次:

docker tag proj1 localhost.com:5000/proj/proj1 
docker push localhost.com:5000/proj/proj1 
+0

如果你只是做了'泊坞窗tag'命令是不带'泊坞窗push',你仍然得到错误? –

+0

@VinceBowdren是的,但我想用相同的标记更新我的注册表 –

回答

4

简称:升级到最新的版本泊坞窗(首选),或使用-t标签选项。

你的命令,如果你会发出以下两个命令是一样的:泊坞窗

docker tag proj1:latest localhost.com:5000/proj/proj1:latest 
docker push localhost.com:5000/proj/proj1:latest 

旧版本都在抱怨,因为你尝试用现有的标签:latest覆盖现有的图像。

快速&肮脏的解决方案是

docker tag -f proj1 localhost.com:5000/proj/proj1 
docker push -f localhost.com:5000/proj/proj1 

此尝试将允许覆盖旧版本泊坞窗的现有图像localhost.com:5000/proj/proj1:latest

但是,我建议将docker升级到版本> = 1.12.0。在那里,-t选项不可用并且不再必要,因为图像将始终被替换。这就是为什么-f选项没有在official documentation上描述的原因,而是在Docker Deprecated Engine Features page上提到的。

1

问题是与你的docker tag命令,得到这个响应:从守护

错误响应:冲突:最新的标签已被设置为图像2bcc77ac3ef5f5ce0442d9cae3652c0464b8f266db9ccd65b1638aadf60ebc39,如果你要替换它,请使用-f选项

这是因为您的本地计算机上已经有一个带有该标记的图像。如果您想从旧映像中删除标签,则应使用docker rmi命令。请记住确保旧图像仍然有一个或多个标签(例如内部编号),否则它将被删除。

要完成一个例子,假设你的本地机器具有以下图片:

REPOSITORY      TAG     IMAGE ID 
localhost.com:5000/proj/proj1 0.1     2bcc77ac3ef5 
localhost.com:5000/proj/proj1 latest    2bcc77ac3ef5 
<none>       <none>    d52cb651fb7a 

注意的是,前两排是同一图像两种不同的标签;第三行是你想要标记的新图像。

您想要做的第一件事是从现有图像中删除最新的标记,仅留下0。1个标签:

docker rmi localhost.com:5000/proj/proj1:latest 

,将让你用下面的图像列表:

REPOSITORY      TAG     IMAGE ID 
localhost.com:5000/proj/proj1 0.1     2bcc77ac3ef5 
<none>       <none>    d52cb651fb7a 

现在可以应用的版本标签和最新标签的新形象:

docker tag d52cb651fb7a localhost.com:5000/proj/proj1:0.2 
docker tag d52cb651fb7a localhost.com:5000/proj/proj1:latest 

这会给你以下图像列表:

REPOSITORY      TAG     IMAGE ID 
localhost.com:5000/proj/proj1 0.1     2bcc77ac3ef5 
localhost.com:5000/proj/proj1 0.2     d52cb651fb7a 
localhost.com:5000/proj/proj1 latest    d52cb651fb7a 

现在你可以做推:

docker push localhost.com:5000/proj/proj1:latest