简介
在docker search
的时候,有看到了AUTOMATED这一字段,这是会意思呢?其实就是docker hub提供的自动构建 镜像的功能。
1 | [root@master ~]# docker search --limit 2 nginx |
自动构建有几个优点:
- 以这种方式构建的镜像完全符合期望
- 可以访问 Docker Hub 仓库的任何人都可以使用 Dockerfile。
- 代码变化后仓库会自动更新。
先决条件
要使用自动构建,必须在 Docker Hub 和托管仓库(GitHub 或 Bitbucket)上拥有一个帐户。如果之前已链接过你的 Github 或 Bitbucket 帐户,则必须选择公共和私有连接类型。
要查看你当前的连接设置,请登录到 Docker Hub 并选择 Profile > Account Settings > Linked Accounts & Services。
然后根据提示进行设置即可。
创建自动构建
华为云官方有开源了坦克大战的源码,我们先下载:git clone https://codehub.devcloud.huaweicloud.com/Demo04260/tank.git
,然后在本地创建版本库,再上传至github上,然后再继续下面的操作。
点击 repositories --> create repository
会出现如下界面:
注意要选择正常的github源。按需填写后点击 Create 。
再点击进入创建好的repository,选 Builds 项,再点击Configure automated builds后,按以下填写好即可。
这样设置好了之后,我们每次给github提交更新,那镜像就会跟着自动构建了。在 Builds 项,是可以看到构建的记录了。
验证
使用docker pull看是否可以正常下载。
1 | [root@master ~]# docker pull fang2000/tank |
实例:使用华为云自动构建镜像
华为云也有类似的功能,我们可以体验下。
首先通过 https://support.huaweicloud.com/usermanual-swr/swr_01_1000.html 来获取长期有效的docker login指令。
打开 代码托管 网站,选择按模板新建,搜索选择 tank ,即经典的坦克大战。
按照提示,请新建好tank这个仓库。
打开 容器交付流水线,选择模板市场,镜像构建,将源码直接构建成镜像,创建流水线。然后选择刚刚创建的镜像,或者直接输入 https://devcloud.com/Demo04260/tank.git 这个链接。
再选择镜像构建方法:
确认成功之后,点击启动流水线。
这时打开 容器镜像服务 就可以看到创建好的镜像了。下载以及运行镜像:
1 | docker pull swr.cn-north-1.myhuaweicloud.com/fang141x/tank:v1 |
这时坦克大战就可以开始了。
不管是docker hub还是华为云,其原理都是通过Dockerfile来实现自动构建的,所以在上传给github的代码的根目录必须要有这个文件。