Docker技术入门与实战(第2版)3.2 查看镜像信息

3.2 查看镜像信息

1.?使用images命令列出镜像

使用docker images命令可以列出本地主机上已有镜像的基本信息。

例如,下面的命令列出了上一小节中下载的镜像信息:

$ docker images

REPOSITORY               TAG            IMAGE ID        CREATED         SIZE

ubuntu                   16.04          2fa927b5cdd3    2 weeks ago     122 MB

ubuntu                   latest         2fa927b5cdd3    2 weeks ago     122 MB

ubuntu                   14.04          8f1bd21bd25c    2 weeks ago     188 MB

在列出的信息中,可以看到以下几个字段信息。

来自于哪个仓库,比如ubuntu仓库用来保存ubuntu系列的基础镜像;

镜像的标签信息,比如14.04、latest用来标注不同的版本信息。标签只是标记,并不能标识镜像内容;

镜像的ID(唯一标识镜像),如ubuntu:latest和ubuntu:16.04镜像的ID都是2fa927b5cdd3,说明它们目前实际上指向同一个镜像;

创建时间,说明镜像最后的更新时间;

镜像大小,优秀的镜像往往体积都较小。

其中镜像的ID信息十分重要,它唯一标识了镜像。在使用镜像ID的时候,一般可以使用该ID的前若干个字符组成的可区分串来替代完整的ID。

TAG信息用来标记来自同一个仓库的不同镜像。例如ubuntu仓库中有多个镜像,通过TAG信息来区分发行版本,包括10.04、12.04、12.10、13.04、14.04、16.04等标签。

镜像大小信息只是表示该镜像的逻辑体积大小,实际上由于相同的镜像层本地只会存储一份,物理上占用的存储空间会小于各镜像的逻辑体积之和。

images子命令主要支持如下选项,用户可以自行进行尝试。

-a, --all=true|false:列出所有的镜像文件(包括临时文件),默认为否;

--digests=true|false:列出镜像的数字摘要值,默认为否;

-f, --filter=[]:过滤列出的镜像,如dangling=true只显示没有被使用的镜像;也可指定带有特定标注的镜像等;

--format="TEMPLATE":控制输出格式,如.ID代表ID信息,.Repository代表仓库信息等;

--no-trunc=true|false:对输出结果中太长的部分是否进行截断,如镜像的ID信息,默认为是;

-q, --quiet=true|false:仅输出ID信息,默认为否。

其中,对输出结果进行控制的选项如-f, --filter=[]、--no-trunc=true|false、

-q, --quiet=true|false等,大部分子命令都支持。

更多子命令选项还可以通过man docker-images来查看。

2.?使用tag命令添加镜像标签

为了方便在后续工作中使用特定镜像,还可以使用docker tag命令来为本地镜像任意添加新的标签。例如添加一个新的myubuntu:latest镜像标签:

$ docker tag ubuntu:latest myubuntu:latest

再次使用docker images列出本地主机上镜像信息,可以看到多了一个拥有myubuntu: latest标签的镜像:

$ docker images

REPOSITORY       TAG       IMAGE ID          CREATED         SIZE

ubuntu           16.04     2fa927b5cdd3      2 weeks ago     122 MB

ubuntu           latest    2fa927b5cdd3      2 weeks ago     122 MB

myubuntu         latest    2fa927b5cdd3      2 weeks ago     122 MB

ubuntu           14.04     8f1bd21bd25c      2 weeks ago     188 MB

之后,用户就可以直接使用myubuntu:latest来表示这个镜像了。

细心的读者可能注意到,这些myubuntu:latest镜像的ID跟ubuntu:latest完全一致。它们实际上指向同一个镜像文件,只是别名不同而已。docker tag命令添加的标签实际上起到了类似链接的作用。

3.?使用inspect命令查看详细信息

使用docker inspect命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等:

$ docker inspect ubuntu:14.04

[

    {

        "Id": "sha256:8f1bd21bd25c3fb1d4b00b7936a73a0664f932e11406c48a0ef19d82fd0b7342",

        "RepoTags": [

            "ubuntu:14.04"

        ],

        "RepoDigests": [],

        "Parent": "",

        "Comment": "",

        "Created": "2016-05-27T14:13:04.103044105Z",

        "Container": "eb8c67a3bff6e93658d18ac14b3a2134488c140a1ae1205c0cfdfd49f087113f",

        "ContainerConfig": {

            "Hostname": "fff5562e8198",

            "Domainname": "",

            "User": "",

            "AttachStdin": false,

            "AttachStdout": false,

            "AttachStderr": false,

            "Tty": false,

            "OpenStdin": false,

            "StdinOnce": false,

            "Env": [],

            "Cmd": [

                "/bin/sh",

                "-c",

                "#(nop) CMD [\"/bin/bash\"]"

            ],

            "Image": "f9cdf71c33f14c7af4b75b651624e9ac69711630e21ceb289f69e0300e90c57d",

            "Volumes": null,

            "WorkingDir": "",

            "Entrypoint": null,

            "OnBuild": null,

            "Labels": {}

        },

        "DockerVersion": "1.9.1",

        "Author": "",

        "Config": {

            "Hostname": "fff5562e8198",

            "Domainname": "",

            "User": "",

            "AttachStdin": false,

            "AttachStdout": false,

            "AttachStderr": false,

            "Tty": false,

            "OpenStdin": false,

            "StdinOnce": false,

            "Env": [],

            "Cmd": [

                "/bin/bash"

            ],

            "Image": "f9cdf71c33f14c7af4b75b651624e9ac69711630e21ceb289f69e0300e90c57d",

            "Volumes": null,

            "WorkingDir": "",

            "Entrypoint": null,

            "OnBuild": null,

            "Labels": {}

        },

        "Architecture": "amd64",

        "Os": "linux",

        "Size": 187957543,

        "VirtualSize": 187957543,

        "GraphDriver": {

            "Name": "aufs",

            "Data": null

        },

        "RootFS": {

            "Type": "layers",

            "Layers": [

                "sha256:a7e1c363defb1f80633f3688e945754fc4c8f1543f07114befb5e0175d569f4c",

                "sha256:dc109d4b4ccf69361d29292fb15e52707507b520aba8cd43a564182f26725d74",

                "sha256:9f7ab087e6e6574225f863b6013579a76bd0c80c92fefe7aea92c4207b6486cb",

                "sha256:6f8be37bd578bbabe570b0181602971b0ea3509b79a1a3dd5528a4e3fc33dd6f",

                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"

            ]

        }

    }

]

返回的是一个JSON格式的消息,如果我们只要其中一项内容时,可以使用参数-f来指定,例如,获取镜像的Architecture:

$ docker inspect -f {{".Architecture"}}

amd64

4.?使用history命令查看镜像历史

既然镜像文件由多个层组成,那么怎么知道各个层的内容具体是什么呢?这时候可以使用history子命令,该命令将列出各层的创建信息。

例如,查看ubuntu:14.04镜像的创建过程,可以使用如下命令:

$ docker history ubuntu:14.04

IMAGE         CREATED      CREATED BY                                     SIZE COMMENT

8f1bd21bd25c  2 weeks ago  /bin/sh -c #(nop) CMD ["/bin/bash"]            0 B

<missing>     2 weeks ago  /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/  1.895 kB

<missing>     2 weeks ago  /bin/sh -c rm -rf /var/lib/apt/lists/*         0 B

<missing>     2 weeks ago  /bin/sh -c set -xe   && echo '#!/bin/sh' > /u  194.5 kB

<missing>     2 weeks ago  /bin/sh -c #(nop) ADD file:aca501360d0937bc49  187.8 MB

注意过长的命令被自动截断了,可以使用前面提到的--no-trunc选项来输出完整

命令。

时间: 2024-09-15 06:27:28

Docker技术入门与实战(第2版)3.2 查看镜像信息的相关文章

《Docker技术入门与实战》——3.7 上传镜像

3.7 上传镜像 可以使用docker push命令上传镜像到仓库,默认上传到DockerHub官方仓库(需要登录),命令格式为docker push NAME[:TAG].用户在DockerHub网站注册后,即可上传自制的镜像.例如用户user上传本地的test:latest镜像,可以先添加新的标签user/test:latest,然后用docker push命令上传镜像: $ sudo docker tag test:latest user/test:latest $ sudo docker

Docker技术入门与实战(第2版).

容器技术系列 Docker技术入门与实战 第2版 杨保华 戴王剑 曹亚仑 编著 图书在版编目(CIP)数据 Docker技术入门与实战 / 杨保华,戴王剑,曹亚仑编著. -2版. -北京:机械工业出版社,2017.1 (容器技术系列) ISBN 978-7-111-55582-7 I. D- II. ①杨- ②戴- ③曹- III. Linux操作系统-程序设计 IV. TP316.85 中国版本图书馆CIP数据核字(2016)第308604号 本书从Docker基本原理开始,深入浅出地讲解Do

赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】

最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 (作者) http://www.amazon.cn/Docker技术入门与实战-杨保华-戴王剑-曹亚仑/dp/B00SMJ0VFA/ref=sr_1_2?s=digital-text&ie=UTF8&qid=1435217727&sr=1-2&keywords=docker

Docker技术入门与实战(第2版)导读

前言 在一台服务器上同时运行一百个虚拟机,肯定会被认为是痴人说梦.而在一台服务器上同时运行一千个Docker容器,这已经成为现实.在计算机技术高速发展的今天,昔日的天方夜谭正在一个个变成现实. 多年的研发和运维(DevOps)经历中,笔者时常会碰到这样一个困境:用户的需求越来越多样,系统的规模越来越庞大,运行的软件越来越复杂,环境配置问题所造成的麻烦层出不穷--为了解决这些问题,开源社区推出过不少优秀的工具.这些方案虽然在某些程度上确能解决部分"燃眉之急",但是始终没有一种方案能带来&

《Docker技术入门与实战》——3.2 查看镜像信息

3.2 查看镜像信息 使用docker images命令可以列出本地主机上已有的镜像.例如,下面的命令列出了本地刚从官方下载的ubuntu:14.04镜像,以及从DockerPool镜像源下载的ubuntu:latest镜像. $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu 14.04 5506de2b643b 1 weeks ago 197.8 MB dl.dockerpool.com:5000/

Docker技术入门与实战(第2版)2.1 核心概念

核心概念与安装配置 本章首先介绍Docker的三大核心概念. 镜像(Image) 容器(Container) 仓库(Repository) 只有理解了这三个核心概念,才能顺利地理解Docker容器的整个生命周期. 随后,笔者将介绍如何在常见的操作系统平台上安装Docker,包括Ubuntu.CentOS.MacOS和Windows等主流操作系统平台. 2.1 核心概念 Docker的大部分操作都围绕着它的三大核心概念--镜像.容器和仓库而展开.因此,准确把握这三大核心概念对于掌握Docker技术

Docker技术入门与实战(第2版)1.1 什么是Docker

初识容器与Docker 如果说主机时代大家比拼的是单个服务器物理性能(如CPU主频和内存),那么在云时代,最为看重的则是凭借虚拟化技术所构建的集群处理能力. 伴随着信息技术的飞速发展,虚拟化技术早已经广泛应用到各种关键场景中.从20世纪60年代IBM推出的大型主机虚拟化,到后来以Xen.KVM为代表的虚拟机虚拟化,再到现在以Docker为代表的容器技术,虚拟化技术自身也在不断进行创新和突破. 传统来看,虚拟化既可以通过硬件模拟来实现,也可以通过操作系统软件来实现.而容器技术则更为优雅,它充分利用

Docker技术入门与实战(第2版)3.1 获取镜像

使用Docker镜像 镜像(image)是Docker三大核心概念中最为重要的,自Docker诞生之日起"镜像"就是相关社区最为热门的关键词. Docker运行容器前需要本地存在对应的镜像,如果镜像没保存在本地,Docker会尝试先从默认镜像仓库下载(默认使用Docker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自定义的镜像仓库. 本章将介绍围绕镜像这一核心概念的具体操作,包括如何使用pull命令从Docker Hub仓库中下载镜像到本地,如何查看本地已有的镜像信息和管

Docker技术入门与实战(第2版)3.6 存出和载入镜像

3.6 存出和载入镜像 用户可以使用docker save和docker load命令来存出和载入镜像. 1.?存出镜像 如果要导出镜像到本地文件,可以使用docker save命令.例如,导出本地的ubuntu: 14.04镜像为文件ubuntu_14.04.tar,如下所示: $ docker images REPOSITORY          TAG         IMAGE ID        CREATED         VIRTUAL SIZE ubuntu