Docker守护程序映像列出重复ID但不同的标记,其中一个图像标记为“<无>”

时间:2016-09-27 16:07:12

标签: docker kube-solo

描述

在我打开一个错误之前,我想我应该在这里问一下 - 我如何清理一个注册表,其中包含带有不同标记的重复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

重现问题的步骤:

我不确定注册表是如何进入这种状态的

预期行为

其中一个:

  1. 不允许注册表首先进入此状态
  2. 一旦达到这个条件: 一个。给我一个用<none>标记图像的方法。 湾为我提供一种方法,使用rmi标记删除(<none>)图片。
  3. 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

1 个答案:

答案 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所说,您所看到的是本地图像缓存的内容,而不是注册表。