原文作者:Rafael Salerno 原文地址:https://dzone.com/articles/docker-hub-save-and-share-your-docker-images
Docker Hub 是一个基于云的注册服务网站,提供容器应用或容器服务的构建功能。
其为容器镜像的发现、分发和变化管理提供了集中化的资源,并通过开发的管线化控制,加强用户与团队的合作以及工作流的自动化。
Docker Hub 提供了以下功能:
•镜像仓库 查找、管理、推送(push)、拉取(pull)镜像,包括社区、官方镜像和私有镜像。
•自动构建(build) 在对GitHub或bit bucket上的代码提交更改时,自动构建新的镜像。
•Webhooks 自动构建的功能之一,能够在每次成功的向仓库上传镜像后触发某些操作。
•团队协作 创建控制用户访问权限的工作组
1. 公共仓库
通过 “search” 命令得到公共仓库中所有相关的可用镜像列表
2. 查看当前的镜像
(注:原图质量问题,图中命令应该为docker images)
3. 登录我的Docker Hub账户
4. 向镜像添加标签并发送至我的账户
现在,我的仓库中有了两个镜像
5. 最后,将镜像推送到仓库
6. 在我的Docker Hub账户中能看到我推送的镜像
Webhooks是一个由特殊事件触发的HTTP 回调。
你可以在一个新的镜像发送到仓库时,通过webhook通知其它用户、服务或者应用。
添加webhooks只需要进入Docker Hub仓库,点击“Settings”栏下的“Webhooks”按钮,指定的webhook只会在成功的推送(push)操作之后被调用。
webhooks提交基于JSON有效负载(JSON payload)的HTTP POST请求,示例如下:
在我创建完webhook后,能看到的结果:
可以使用此网站对webhook进行测试:http://requestb.in
这个网站能够提供一个用于webhook的URL,和另一个用于检测此请求的URL。
你可以使用存储于仓库的构建上下文(building context)自动构建镜像,其包括一个Dockerfile文件以及特定位置的其它文件。
对于一个自动构建,构建上下文是一个提供Dockerfile的仓库。使用自动构建时,你需要有一个Docker Hub账号,并在Github或BitBucket上有对应的托管仓库。
如果你已经有了一个Github或BitBucket账户,需要选择通过私有还是公有的连接类型。
在每一次的代码提交后,能够看到镜像构建的状态表:
自动构建过程还能与webhooks相结合,使结果能够被直接部署。
Webhooks和自动构建功能在私有模式下会有所限制。Docker Hub网站向每个免费用户提供一个私有仓库和一个并行构建,上面的自动构建管道(图中的pipeline)短时间内还不会向免费用户提供。
更多的信息,可以查看我的幻灯片