在使用Docker镜像过程中,我们经常需要构建自己的镜像,而每一次docker build的漫长等待都非常耗费时间,而且面对一些大型镜像的编译工作还需要服务器有足够的硬件性能,这对普通用户来说是个不小的门槛与负担。
因此我们可以利用Docker Hub或者Docker Cloud来自动构建镜像,解放我们的双手,也节省了一笔服务器费用。
Docker Hub 自动持续构建
在登录Docker Hub之后,首先在右上角头像的菜单中依次选择Settings > Linked Accounts & Services
,这时候可以看到Github的图标,点击认证,然后Docker Hub就与你的Github仓库连接了。
接下来在右上角“Create”的下拉菜单中点击Create Automated Build
即可打开自动构建的页面,如下图所示。
点击保存之后,可以看到新的镜像页面已经搭建起来了,如下图所示,当Github上的Dockerfile仓库有改动时,Docker Hub会自动构建镜像。
自动构建已经开始构建完成会提示如下,用户可以点击相应的构建编号查看构建过程,如下图所示:
构建成功Docker Cloud 自动持续构建
Docker Hub构建时会进入一个队列,并非立即构建,如果你需要马上构建一个镜像,但手头没有性能足够的机器构建,那么可以使用Docker Cloud。
除了Docker Hub、Docker Cloud提供持续构建镜像功能,很多国内外的Docker创业公司都推出了免费的构建服务,除此之外还可以使用著名的持续构建服务Travis CI来构建镜像。
登录Docker Cloud的界面如下,如下图所示:
Docker Cloud界面
选择左边的Repository进入构建界面,如下图所示,这里以自动构建一个Apache镜像为例,选择之前构建的Apache,准备设置为自动构建,选择连接到Github:
连接Github仓库注意,目前构建功能处于beta阶段,所以免费,以后应该会部分收费,其实除了Docker Hub,其他很多公司都提供免费的构建服务,但为了更好地使用Docker Hub,我们选择Docker Cloud作为例子。
如下图所示,选择你的Dockerfile仓库:
选择Dockerfile所在的Github仓库注意下图中的Dockerfile location的填写,这里的/
代表了仓库的根目录位置,而本例子中Apache的Dockerfile在apache文件夹里面,所以这里要补充Dockerfile的地址/apache
,你还可以选择分支以及构建的标签,最后记得选中Autobuild,这样以后Github仓库更新之后,该镜像也会自动重新构建,省却了自己动手构建推送的麻烦。
点击Save and Build
等待构建结果即可。构建日志在Timeline可以查看,构建失败会显示失败原因,如下图所示:
至此Docker官方提供的两种自动化构建介绍就到此为止啦。
使用Docker Cloud自动构建时,Docker Hub不会生成自动构建页面,个人更推荐第一种方式。
网友评论