本文共 3527 字,大约阅读时间需要 11 分钟。
本节书摘来自华章计算机《Docker技术入门与实战》一书中的第3章,第3.2节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
使用docker images命令可以列出本地主机上已有的镜像。
例如,下面的命令列出了本地刚从官方下载的ubuntu:14.04镜像,以及从DockerPool镜像源下载的ubuntu:latest镜像。$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEubuntu 14.04 5506de2b643b 1 weeks ago 197.8 MBdl.dockerpool.com:5000/ubuntu latest 5506de2b643b 1 weeks ago 197.8 MB
在列出信息中,可以看到几个字段信息:
来自于哪个仓库,比如ubuntu仓库。镜像的标签信息,比如14.04。镜像的ID号(唯一)。创建时间。镜像大小。其中镜像的ID信息十分重要,它唯一标识了镜像。TAG信息用于标记来自同一个仓库的不同镜像。例如ubuntu仓库中有多个镜像,通过TAG信息来区分发行版本,包括10.04、12.04、12.10、13.04、14.04等标签。为了方便在后续工作中使用这个镜像,还可以使用docker tag命令为本地镜像添加新的标签。例如添加一个新的ubuntu:latest镜像标签如下:$ sudo docker tag dl.dockerpool.com:5000/ubuntu:latest ubuntu:latest
再次使用docker images列出本地主机上镜像信息,可以看到多了一个ubuntu:latest标签的镜像。
$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEubuntu 14.04 5506de2b643b 1 weeks ago 197.8 MBdl.dockerpool.com:5000/ubuntu latest 5506de2b643b 1 weeks ago 192.8 MBubuntu latest 5506de2b643b 1 weeks ago 192.8 MB
细心的读者可能会注意到,这些不同标签的镜像的ID是完全一致的,说明它们实际上指向了同一个镜像文件,只是别名不同而已。标签在这里起到了引用或快捷方式的作用。
使用docker inspect命令可以获取该镜像的详细信息。$ sudo docker inspect 5506de2b643b[{ "Architecture": "amd64", "Author": "", "Comment": "", "Config": { "AttachStderr": false, "AttachStdin": false, "AttachStdout": false, "Cmd": [ "/bin/bash" ], "CpuShares": 0, "Cpuset": "", "Domainname": "", "Entrypoint": null, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "ExposedPorts": null, "Hostname": "065262ce3c91", "Image":"964692831e07f7362f5c3fedf0c4b81a622f2c6e3ec5f19d0eddff21afd64c12", "Memory": 0, "MemorySwap": 0, "NetworkDisabled": false, "OnBuild": [], "OpenStdin": false, "PortSpecs": null, "StdinOnce": false, "Tty": false, "User": "", "Volumes": null, "WorkingDir": "" }, "Container":"f26bc14cc07412402bdab911b8a935fead0322649cf042cee8515c02ebdfa53a", "ContainerConfig": { "AttachStderr": false, "AttachStdin": false, "AttachStdout": false, "Cmd": [ "/bin/sh", "-c", "#(nop) CMD [/bin/bash]" ], "CpuShares": 0, "Cpuset": "", "Domainname": "", "Entrypoint": null, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "ExposedPorts": null, "Hostname": "065262ce3c91", "Image":"964692831e07f7362f5c3fedf0c4b81a622f2c6e3ec5f19d0eddff21afd64c12", "Memory": 0, "MemorySwap": 0, "NetworkDisabled": false, "OnBuild": [], "OpenStdin": false, "PortSpecs": null, "StdinOnce": false, "Tty": false, "User": "", "Volumes": null, "WorkingDir": "" }, "Created": "2014-09-23T22:37:05.812213629Z", "DockerVersion": "1.2.0", "Id": "53bf7a53e8903fce40d24663901aac6211373a8d8b4effe08bc884e63e181805", "Os": "linux", "Parent":"964692831e07f7362f5c3fedf0c4b81a622f2c6e3ec5f19d0eddff21afd64c12", "Size": 0}]
docker inspect命令返回的是一个JSON格式的消息,如果我们只要其中一项内容时,可以使用-f参数来指定,例如,获取镜像的Architecture信息:
$ sudo docker inspect -f { {".Architecture"}} 550amd64
在指定镜像ID的时候,通常使用该ID的前若干个字符组成的可区分字串来替代完整的 ID。
转载地址:http://gcmfl.baihongyu.com/