更新注册表
码头工人,像我把我的搬运工像我的私人注册一次,但是当我想再次推的形象我得到了这些消息:更新注册表
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
简称:升级到最新的版本泊坞窗(首选),或使用-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上提到的。
问题是与你的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
如果你只是做了'泊坞窗tag'命令是不带'泊坞窗push',你仍然得到错误? –
@VinceBowdren是的,但我想用相同的标记更新我的注册表 –