Working with Docker Hub

Working with Docker Hub

到目前为止咱们已经学习了如何使用命令行在主机上运行Docker。你已经学习了如何下载镜像,如何从已经存在的镜像运行容器,以及如何建立你本身的镜像。git

下一步,你将学习如何使用Docker Hub来简化和增强你的Docker工做流。github

Docker Hub是由Docker公司维护的公共注册仓库。你能够利用它:web

  • 下载超过15000的镜像来构建容器docker

  • 身份验证、工做组织结构以及像webhookstrigger这样的工做流工具centos

  • 一些私人工具,好比私人仓库用来存放你不想和他人分享的镜像负载均衡

Docker commands and Docker Hub

Docker自己提供了一些命令用于获取Docker Hub服务:ide

  • docker login工具

  • docker search学习

  • docker pullui

  • docker push

Account creation and login

要想使用Docker Hub的服务,首先要有Docker Hub的帐号而且登陆。你能够在Docker Hub上注册或者经过命令:

docker login

这条命令后会提示输入用户名,会成为你公共仓库的共有命名空间,若是已经有了用户名,Docker会提示你输入密码和邮箱,而后自动登陆。登陆成功后你就能够向Docker Hub上本身的仓库中推送本身的镜像了。

注意:你的身份验证信息会被存在用户目录的.dockercfg认证文件中

Searching for images

咱们能够经过Docker本身的search接口或者是命令行中的接口来查找Docker Hub中的镜像。关键字能够是镜像名,用户名甚至是镜像的描述信息。

$ sudo docker search centos
NAME           DESCRIPTION                                     STARS     OFFICIAL   TRUSTED
centos         Official CentOS 6 Image as of 12 April 2014     88
tianon/centos  CentOS 5 and 6, created using rinse instea...   21
...

其中有两个结果:centostianon/centos。第二个tianon/centos表示它来自于一位叫tianon的用户的仓库。第一个结果没有显示列出仓库则意味着它是受信任的官方顶级名称空间存储库。/将仓库名和镜像名分割开。

找到镜像后pull下载镜像

docker pull [imagename]

Contributing to Docker Hub

任何人均可以从Docker Hub下载镜像,可是若是你想向Docker Hub推送镜像,首先要注册

Pushing a repository to Docker Hub

为了将仓库推送到register中,你须要已经命名的镜像或者把你的容器保存为命名的镜像,详情见这里

docker push yourname/newimage

Features of Docker Hub

如今咱们就来看看Docker Hub有哪些特性,更多信息见这里

  • 私人仓库

  • 组织和团队

  • 自动构建

  • webhooks

Private Repositories

若是你有镜像不想公开或和他人分享,Docker容许你拥有本身的私人仓库

Organizations and teams

私人仓库的一个好处是你能够把里里面的镜像分享给组织或团队里的人。Docker Hub容许你建立本身的组织,在组织里你能够和同伴一块儿工做,以及管理本身的仓库。详情见这里

Automated Builds

自动构建和更新github和bitbuckets中的镜像,这些工做直接在Docker Hub中进行(不是本地)。它的工做方式是这样的:在你选中的github或bitbucket中添加hook,当你更新仓库时会触发构建和更新操做。

自动构建的步骤:

  • 建立帐号并登陆

  • 链接github或bitbucket的帐号

  • 配置自动构建的选项

  • 选中github或bitbucket中带有Dockerfile的项目

  • 选择分支

  • 命名

  • 分配可选的Docker标签

  • 指定Dockerfile文件的位置,默认是/目录

Automated Builds page查看本身自动构建的项目

不能对自动构建的仓库使用docker push命令。只能经过向github或bitbucket更新代码来管理本身的镜像。

你也可用为同一个项目的不一样分支建立多个自动构建的项目。

Webhooks

webhooks附着到你的仓库而且在你更新镜像或者push操做时触发事件。经过webhook,push镜像时,你能够指定一个目标URL或者JSON负载均衡。