5.1 Docker Hub公共镜像市场

目前Docker官方维护了一个公共镜像仓库https://hub.docker.com,其中已经包括超过15000的镜像。大部分镜像需求,都可以通过在Docker Hub中直接下载镜像来实现,如图5-1所示。

1.登录

可以通过命令行执行docker login命令来输入用户名、密码和邮箱来完成注册和登录。注册成功后,本地用户目录的.dockercfg中将保存用户的认证信息。

登录成功的用户可以上传个人制造的镜像。

2.基本操作

用户无需登录即可通过docker search命令来查找官方仓库中的镜像,并利用docker pull命令来将它下载到本地。

5.1 Docker Hub公共镜像市场 - 图1

图5-1 Docker Hub是最大的公共镜像仓库

在搜寻镜像的章节,已经具体介绍了如何使用docker pull命令。例如以centos为关键词进行搜索:


  1. $ docker search centos
  2. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  3. centos The official build of CentOS. 2507 [OK]
  4. ansible/centos7-ansible Ansible on Centos7 82 [OK]
  5. jdeathe/centos-ssh CentOS-6 6.8 x86_64 / CentOS-7 7.2.1511 x8... 27 [OK]
  6. nimmis/java-centos This is docker images of CentOS 7 with dif... 13 [OK]
  7. million12/centos-supervisor Base CentOS-7 with supervisord launcher, h...12 [OK]
  8. ...

根据是否为官方提供,可将这些镜像资源分为两类。一种是类似centos这样的基础镜像,称为基础或根镜像。这些镜像是由Docker公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。

还有一种类型,比如ansible/centos7-ansible镜像,它是由Docker用户ansible创建并维护的,带有用户名称为前缀,表明是某用户下的某仓库。可以通过用户名称前缀user_name/镜像名来指定使用某个用户提供的镜像。

另外,在查找的时候通过-s N参数可以指定仅显示评价为N星以上的镜像。

下载官方centos镜像到本地,如下所示:


  1. $ docker pull centos
  2. Pulling repository centos
  3. 0b443ba03958: Download complete
  4. 539c0211cd76: Download complete
  5. 511136ea3c5a: Download complete
  6. 7064731afe90: Download complete

用户也可以在登录后通过docker push命令来将本地镜像推送到Docker Hub。

5.1 Docker Hub公共镜像市场 - 图2提示

Ansible是知名自动化部署配置管理工具。

3.自动创建

自动创建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。

而自动创建允许用户通过Docker Hub指定跟踪一个目标网站(目前支持GitHub或BitBucket)上的项目,一旦项目发生新的提交,则自动执行创建。

要配置自动创建,包括如下的步骤:

1)创建并登录Docker Hub,以及目标网站;*在目标网站中连接帐户到Docker Hub;

2)在Docker Hub中配置一个“自动创建”;

3)选取一个目标网站中的项目(需要含Dockerfile)和分支;

4)指定Dockerfile的位置,并提交创建。

之后,可以在Docker Hub的“自动创建”页面中跟踪每次创建的状态。