docker学习笔记3:镜像操作(查找和下载)

查看本地镜像

只有下载后,镜像才会保存在本地(docker环境所在的主机),通过如下命令可以查看本地已经存在的镜像

docker images

上面命令列出本地所有已经存在的镜像,显示的信息如:

REPOSITORY                                       TAG                 IMAGE ID            CREATED             SIZE
hongxingwz/add_test02                            latest              fcdf90c47c43        16 hours ago        197MB
hongxingwz/add_test01                            latest              988d14565605        16 hours ago        197MB
csphere/centos7                                  latest              77f82c11e19d        18 hours ago        613MB

镜像中心

本地的镜像是从远程镜像中心(Registry)下载到本地的,默认的镜像中心是docker公司运营的docker hub中心。

在远程镜像中心,镜像是保存在仓库(Repository)中,仓库存在镜像中心(Registry)中。

每个镜像都有一个唯一的ID号。一个仓库(如上面的ubuntu)中有多个镜像,通过tag标识区分不同镜像,一个仓库中的镜像通常是同一种类型的镜像,只是不同版本的区别。换句话说,镜像时由仓库名和tag标识来共同决定的。

docker hub中有两种类型的镜像:用户仓库(user repository) 和 顶层仓库(top-level repository)。用户仓库的镜像是有docker用户创建的。顶层仓库是有docker公司内部管理的。

用户仓库的命名由用户名和仓库名两部分组成(中间用/分隔);而顶层仓库只有仓库名,如ubuntu仓库。

总结一下,镜像名称的标准格式是: 用户名/仓库名:Tag名,对于顶层的则没有用户名,如果省略tag名,默认为latest。

说明:也可以搭建私用的镜像中心,供企业内部使用。

在docker hub中心查找仓库

通过docker search命令可以查找docker hub上所有公共的可用仓库。

可以带一个字符串参数(支持通配),用于查找满足命名的仓库。

举例:docker search mysql

NAME                                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                                                  MySQL is a widely used, open-source relati...   5028      [OK]       
mariadb                                                MariaDB is a community-developed fork of M...   1550      [OK]       
mysql/mysql-server                                     Optimized MySQL Server Docker images. Crea...   354                  [OK]

返回的每条记录代表一个镜像。包含5个字段信息:

  • Name: 镜像的仓库名。可以看出顶层仓库只有第一个镜像是。其它的都是用户仓库
  • Description: 仓库的描述信息
  • Stars: 用户评介,反映一个仓库受欢迎的程序
  • Offical: 是否官方,即是否是顶层仓库。可以看出,只有第一个镜像是顶层仓库。
  • Automated: 表示这个镜像是由docker hub自动构建的。

下载镜像

通过docker run方法是创建容器,如果指定的镜像在本机不存在,则会选去下载镜像。

可以通过docker pull命令只下载镜像,不创建容器

命令: docker pull [用户名/]仓库名[:TAG]

含义:如果只指定仓库名,会下载该仓库下的所有镜像。如果还指定了TAG值,则会下载指定的镜像。对于docker run命令,只指定仓库名,不指定tag时,默认下载的是latest标识的镜像。

镜像的复制

一个镜像是属于一个仓库,一个仓库中有多个镜像,大家靠tag来区分。

在某些场景下,可能需要把一个已有的镜像加入(也就是复制)到别的仓库中。这时可以用tag命令。具体的语法格式是:

docker tag [OPTIONS] originIMAGE[:TAG] [REGISTRYHOST/][USERNAME/]newNAME[:TAG]

这个还是挺有用的,比如当创建一个镜像,命名不适合(仓库名和tag标识),这样相当于改个名,但实际是拷贝一份。

results matching ""

    No results matching ""