镜像是Docker三大核心概念中最为重要的,自Docker诞生之日起“镜像”就是相关社区最为热门的关键词。
Docker运行容器前需要本地存在对应的镜像,如果镜像没保存在本地,Docker会尝试先从默认镜像仓库下载(默认使用Docker Hub公共注册服务器的仓库),用户也可以通过配置,使用自定义的镜像仓库。接下来将介绍更多关于Docker images的内容,包括:
- 使用和管理本地主机上的images。
- 创建一个基础的images。
- 上传images到Dokcer Hub(公共images仓库)。
- 列出本地主机上已经存在的images。
1、搜索镜像
使用Docker search命令可以搜索远端仓库中共享的镜像,默认搜索官方仓库中的镜像。用法为docker search关键字,支持的参数主要包括:
--automated=true | false:仅显示自动创建的镜像,默认为否;
--no-trunc=true | false:输出信息不截断显示,默认为否;
-s,--stars=X:指定仅显示评价为指定星级以上的镜像,默认为0,即输出所有镜像。
例如,搜索所有自动创建的评价为1+的带Nginx关键字的镜像,默认的输出结果将按照星级评价进行排序,如下所示:
[root@localhost ~]# docker search --automated -s 3 nginx
NAME:镜像名称
DESCRIPTION:描述
STARS:星级,代表受欢迎程度
OFFICIAL:是否官方创建
AUTOMATED:是否自动创建
2、获取镜像
镜像是运行容器的前提,官方的Docker Hub网站已经提供了数十万个镜像供大家开放下载。
可以使用docker pull命令直接从Docker Hub镜像源来下载镜像。该命令的格式为docker pull NAME[:TAG]。其中,NAME是镜像仓库的名称(用来区分镜像),TAG是镜像标签(往往用来表示版本信息)。通常情况下,描述一个镜像需要包括“名称+标签”信息。
例如:
[root@localhost ~]# docker pull ubuntu:14.04
对于Docker镜像来说,如果不显示指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像。
下面的例子将从Docker Hub的Ubuntu仓库下载一个最新的Ubuntu操作系统的镜像。
[root@localhost ~]# docker pull ubuntu
从下载过程中可以看出,镜像文件一般由若干层(layer)组成,bae382666908这样的串是层的唯一id(实际上完整的id包括256比特,由64个十六进制字符组成)。使用docker pull命令下载时会获取并输出镜像的各层信息。当不同的镜像包括相同的层时,本地仅存储层的一份内容,减小了需要的存储空间。
严格地讲,镜像的仓库名称中还应该添加仓库地址(即registry,注册服务器)作为前缀,只是我们默认使用的是Docker Hub服务,该前缀可以忽略。
例如,docker pull ubuntu:14.04命令相当于docker pull registry.hub.docker.com/ubuntu:14.04命令,即从默认的注册服务器Docker Hub Registry中的ubuntu仓库来下载标记为14.04的镜像。如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址。例如从网易蜂巢的镜像源来下载ubuntu:14.04镜像,可以使用如下命令,此时下载的镜像名称为hub.c.163.com/public/ubuntu:14.04
[root@localhost ~]# docker pull hub.c.163.com/public/ubuntu:14.04
3、查看镜像信息
使用images命令列出镜像
使用docker images命令可以列出本地主机上已有镜像的基本信息。
[root@localhost ~]# docker images
在列出的信息中心,可以看到以下几个字段信息。
来自哪个仓库:比如ubuntu仓库用来保存ubuntu系列的基础镜像;
镜像的标签信息:比如14.04、latest用来标注不同版本信息。标签只是标记,并不能表示镜像内容&#