十六、Docker images 本地镜像列表

前面几章节中,我们多次使用 docker run 从一个镜像创建一个容器,而且我们知道,当使用 docke run 一个镜像时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载

我们也在 Docker run 运行镜像 章节中形象的给镜像一个比喻:QQ 安装包

我们都知道,一个软件安装包,最初都是存放在远程开发者的电脑上,比如 QQ 安装包存放在腾讯服务器上,当我们使用下载软件下载下来之后,它就会在我们自己电脑上有一个备份

那么,镜像也是如此,所有的镜像一般都存储在远程的仓库里,比如 Docker Hub,当我们使用 docker pull 命令时,就会把它们下载到本地

那么,我们要怎么查看本地有哪些镜像呢?

哈哈,很多朋友大概都已经猜到,就是使用 docker images 命令

docker images 列出本地镜像

如果要查看本地有哪些镜像,可以使用 docker images 命令

docker images

例如下面的命令列出了我的电脑上的所有镜像

[root@pottercoding.cn ~]# docker images
REPOSITORY       TAG     IMAGE ID      CREATED       SIZE
ubuntu           17.10   e4422b8da209  4 weeks ago   99.2MB
ubuntu           17.04   fe1cc5b91830  5 months ago  95.6MB
hello-world      latest  e38bc07ac18e  7 weeks ago   1.85kB
jcdemo/flaskapp  latest  084bae02af1b  4 months ago  98.9MB

可以看到,我电脑上只有三个镜像

下表时对 docker images 命令返回结果各个字段的说明

字段 说明
REPOSTITORY 表示镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像大小

同一仓库源可以有多个 TAG ,代表这个仓库源的不同个版本

ubuntu 仓库源里,有 17.1017.04 等多个不同的版本

Docker 使用 REPOSTITORY:TAG 来定义不同的镜像

例如,我们要使用版本为 17.10ubuntu 系统镜像来运行容器时,命令如下:

[root@pottercoding.cn ~]# docker run -t -i ubuntu:17.10 /bin/bash
root@87c897f22904:/#

如果要使用版本为 17.04ubuntu 系统镜像来运行容器时,命令如下:

[root@pottercoding.cn ~]# docker run -t -i ubuntu:17.04 /bin/bash
root@7e0805087ef8

如果不指定一个镜像的版本标签,例如只使用 ubuntu ,docker 将默认使用 latest 标签

[root@pottercoding.cn ~]# docker run -t -i ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
a48c500ed24e: Pull complete 
1e1de00ff7e1: Pull complete 
0330ca45a200: Pull complete 
471db38bcfbf: Pull complete 
0b4aba487617: Pull complete 
Digest: sha256:667c4b3820ddfbfe7b2dc9816123c936f45af6f31bd51b01d02e97dc5f09e3d5
Status: Downloaded newer image for ubuntu:latest
root@d4dc8634df69:/#