Docker 学习之旅(四):Docker Hub

Docker Hub 是一个由 Docker 公司负责维护的公共注册中心,它包含了超过 15,000 个可用来下载和构建容器的镜像,并且还提供认证、工作组结构、工作流工具(比如 webhooks)、构建触发器以及私有工具(比如私有仓库可用于存储你并不想公开分享的镜像)。

总览

Docker Hub 负责集中用户账号、镜像和公开的命名空间的信息,分别由不同的部分组成:

  • Web UI
  • Meta-data store (comments, stars, list public repositories)
  • Authentication service
  • Tokenization

这仅仅是 Docker Hub 的一个基本组成,它对大多数的个人和小型企业是十分有帮助的。在改版后,文档将 Docker Hub 部分独立出去,这里遵循以前的顺序,介绍下 Docker Hub 的基础应用。

有关于 Docker Hub 的文档:https://docs.docker.com/docker-hub/

使用

没有登录帐号的情况下可以 search 或者 pull 镜像,但是不能 push 镜像。

团队和组织

太高大上,个人的我用不上,不太了解。

仓库

搜索镜像

1
2
3
4
5
6
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 1034 [OK]
ansible/centos7-ansible Ansible on Centos7 43 [OK]
tutum/centos Centos image with SSH access. For the root... 13 [OK]
...

没有 / 的镜像说明来自顶层的官方镜像。

可以使用 docker pull <imagename> 下载所需要的镜像。

1
2
3
4
5
6
7
8
$ docker pull centos
latest: Pulling from centos
6941bfcbbfca: Pull complete
41459f052977: Pull complete
fd44297e2ddb: Already exists
centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:d601d3b928eb2954653c59e65862aabb31edefa868bd5148a41fa45004c12288
Status: Downloaded newer image for centos:latest

查看源标签

Docker Hub 的 “Tags” 显示了可以获取的版本和相关联的镜像大小。镜像大小是镜像和累积的所有父镜像之和,也是当你执行 docker save 时创建的 Tar 文件的大小。

创建新仓库

有 xxxx 的命名规则,文档都有不再赘述,创建完成后就可以使用 docker push 来上传镜像。

上传镜像

在往 Docker Hub 上传镜像之前,你需要使用 Docker Hub 的用户名和仓库名来命名本地镜像。你可以通过使用特殊的 :<tag> 标签来往一个仓库添加多个镜像。如果不指明,则默认为 latest

可以使用 docker build -t <hub-user>/<repo-name>[:<tag>] 在构建镜像时命名,使用 docker tag <existing-image> <hub-user>/<repo-name>[:<tag>] 重命名已经存在的本地镜像,或使用 docker commit <exiting-container> <hub-user>/<repo-name>[:<tag>] 来提交更改。

然后就可以上传镜像。

$ docker push <hub-user>/<repo-name>:<tag>

省略其余

省略其余还未了解及用到的部分,请自行查阅文档。

自动构建

有其优点,当然也有其缺点,大体上就是通过链接到 GitHub 或是 Bitbucket 然后再使用。虽然使用过这两个 git 的管理工具,但是初入 Docker 暂不打算先了解自动构建,后期有精力或有需求再看。

继续省略其余

个人认为的入门级应用就这些,其余的不再赘述,有需要的可以自行查看官方文档。