在 Docker镜像获取(gcr.io等) 中, 介绍了几种获取 Docker
镜像的方式,对于大部分镜像来说都可以通过这些方式获得,但是对于较新的镜像,上面几种方式就很不方便了。所以今天介绍一种简单又安全的方式来获取被墙的镜像 -- 通过 DockerHub
或者 Aliyun
等仓库的自动构建来基于被墙镜像来创建自己的镜像。
我已经在
Aliyun
上创建了这个仓库,可以直接使用 soolaugust/docker-images 的方法来获取镜像。
下面通过 Aliyun 的自动构建来说明如何来获取被墙的镜像:
- 创建
Github
仓库 (或者其他代码仓库)
Aliyun
支持的代码仓库如下:
Github
创建仓库后,创建一个Dockerfile
文件,示例如下:
2. 绑定 Aliyun
仓库
这里首先要创建 Aliyun
账号,就不在这里赘述了。然后在容器镜像服务中绑定 Github
账号:
然后创建用于构建的仓库并绑定刚才创建的 Github
仓库:
上面就绑定好了,然后我们进入管理界面可以看到构建的规则:
也就是说我们提交了 release-v$version
的tag
提交后,就会读取Dockfile
,然后进行构建。当然可以制定其他的构建规则,具体可以自行查看。
3. 提交代码来构建镜像
更改Dockerfile
将 $image
替换成你要的镜像, 比如 gcr.io/ml-pipeline/persistenceagent:0.1.7
提交修改
git add .
git commit -m "add images 'gcr.io/ml-pipeline/persistenceagent:0.1.7'" # 修改信息格式为 add images $your_images
git tag release-vml-pipeline-persistenceagent-0.1.7 # 提交格式为 git tag release-v$your_image中 ‘/, :’替换成‘-’
git push --tags
4. 查看是否构建成功
在刚才的构建规则页面查看是否构建成功:
可以看到构建成功。
5. 下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/soolaugust/image:ml-pipeline-persistenceagent-0.1.7
docker tag registry.cn-hangzhou.aliyuncs.com/soolaugust/image:ml-pipeline-persistenceagent-0.1.7 gcr.io/ml-pipeline/persistenceagent:0.1.7
docker rmi registry.cn-hangzhou.aliyuncs.com/soolaugust/image:ml-pipeline-persistenceagent-0.1.7
这样就完成了下载。
如果觉得手工操作过于麻烦,也可以使用脚本,具体的我已经放在Github上了:
soolaugust/docker-imagesgithub.com