描述
在我打开一个错误之前,我想我应该在这里问一下 - 我如何清理一个注册表,其中包含带有不同标记的重复ID的图像,其中一个标记为<none>
?
我事先道歉,如果这已经在其他地方得到解决,我只是无知。我一直在谷歌搜索和阅读这几天没有运气。
REPOSITORY TAG IMAGE ID CREATED SIZE
registry 2 541a6732eadb 2 days ago 33.27 MB
registry <none> 541a6732eadb 2 days ago 33.27 MB
gcr.io/kubernetes-helm/tiller v2.0.0-alpha.4 1000fa85b893 2 weeks ago 53.91 MB
gcr.io/kubernetes-helm/tiller <none> 1000fa85b893 2 weeks ago 53.91 MB
gcr.io/google_containers/kubernetes-dashboard-amd64 v1.1.1 f739d2414b14 6 weeks ago 55.83 MB
gcr.io/google_containers/kubernetes-dashboard-amd64 <none> f739d2414b14 6 weeks ago 55.83 MB
gcr.io/google_containers/kubedns-amd64 1.5 3afb7dbce540 3 months ago 50.82 MB
gcr.io/google_containers/kubedns-amd64 <none> 3afb7dbce540 3 months ago 50.82 MB
gcr.io/google_containers/kube-dnsmasq-amd64 1.3 9a15e39d0db8 3 months ago 5.126 MB
gcr.io/google_containers/kube-dnsmasq-amd64 <none> 9a15e39d0db8 3 months ago 5.126 MB
gcr.io/google_containers/pause-amd64 3.0 99e59f495ffa 4 months ago 746.9 kB
gcr.io/google_containers/pause-amd64 <none> 99e59f495ffa 4 months ago 746.9 kB
gcr.io/google_containers/exechealthz-amd64 1.0 82a141f5d06d 5 months ago 7.116 MB
gcr.io/google_containers/exechealthz-amd64 <none> 82a141f5d06d 5 months ago 7.116 MB
gcr.io/google_containers/heapster v0.18.5 8cadf3cdb46d 8 months ago 37.01 MB
gcr.io/google_containers/heapster <none> 8cadf3cdb46d 8 months ago 37.01 MB
gcr.io/google_containers/kubedash v0.2.1 624dae381b95 12 months ago 14.63 MB
重现问题的步骤:
我不确定注册表是如何进入这种状态的
预期行为
其中一个:
<none>
标记图像的方法。
湾为我提供一种方法,使用rmi
标记删除(<none>
)图片。 docker version
的输出:
Client:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 21:49:11 2016
OS/Arch: darwin/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: f1e1b83
Built:
OS/Arch: linux/amd64
docker info
的输出:
Containers: 34
Running: 12
Paused: 0
Stopped: 22
Images: 9
Server Version: 1.12.1
Storage Driver: overlay
Backing Filesystem: extfs
Logging Driver: json-file
Plugins:
Volume: local
Network: null overlay host bridge
Kernel Version: 4.7.3-coreos
Operating System: CoreOS 1164.1.0 (MoreOS)
OSType: linux
Architecture: x86_64
CPUs: 3
Total Memory: 7.801 GiB
Name: k8solo-01
ID: XKYE:K52Z:OV4I:VDF2:DNYD:BK2X:3C6S:CMUE:LNNX:HXQR:I7FO:ZWV6
其他环境详细信息(AWS,VirtualBox,物理等):
Mac OS X El Capitan上的 corectl
+ kube-solo
答案 0 :(得分:1)
您没有多个具有重复ID的图像 - ID是唯一的,但同一图像可以包含多个标记。当标签用于版本控制时,为了方便用户,您通常会使用带有多个标签的相同图像:
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 c73a085dc378 33 hours ago 127 MB
ubuntu latest c73a085dc378 33 hours ago 127 MB
ubuntu xenial c73a085dc378 33 hours ago 127 MB
我在这台机器上有一个图像,我可以用任何这些标签来引用它。
默认图片代码为latest
,您应该从docker images
看到具有存储库名称但没有标记的图片。如果您运行docker rmi 541
,则会移除registry
图片,两个标记都将消失。
虽然你看到<none>
而不是latest
,这很奇怪。在1.12.1
上,如果我为以下图片代码运行docker pull
(使用Docker Hub):
registry:2
registry
kubernetes/heapster:v0.18.2
kubernetes/heapster
当他们全部下载后,我会看到来自docker images
的这些条目:
registry 2 541a6732eadb 4 days ago 33.3 MB
registry latest 541a6732eadb 4 days ago 33.3 MB
kubernetes/heapster latest d2d2bfdfb48f 12 months ago 34.52 MB
kubernetes/heapster v0.18.2 d2d2bfdfb48f 12 months ago 34.52 MB
正如Haoming Zhang所说,您所看到的是本地图像缓存的内容,而不是注册表。