在试验kubernetes相关内容时需要获取谷歌镜像仓库的镜像(比如搭建k8s、cAdvisor等),但是尝试挂代理也无法匿名下载到仓库的内容。
获取这类镜像的方法一般有2种:
1.通过拉取国内镜像仓库的内容(操作简单直接拉取即可,缺点是镜像的版本更新可能较慢,可能无法获取最新的镜像)
2.通过git+镜像服务拉取镜像(操作略繁琐,但是可以拉取到最新的镜像)
本篇记录的是方法2,即通过git+镜像服务获取镜像(git保存Dockerfile,镜像服务根据Dockerfile构建)。
考虑到既然是用docker的技术人员,git、镜像服务的操作都是基础,略微繁琐的方案能获取最新的镜像服务是我所需要的。
一、创建git仓库
这里我以获取Kube-state-metrics镜像(k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.0.0-beta)为例,演示如何获取最新镜像。
首先创建一个github仓库,并上传Dockerfile文件,文件内容为需要拉取的镜像仓库。
FROM <要拉取的镜像>
下面以Kube-state-metrics为例:
二、创建镜像仓库
2.1 进入阿里云的容器镜像服务
这里我使用的是阿里云的镜像服务,登录阿里云之后,进入“容器镜像服务”。
选择一个数据中心进入个人版。
2.2 创建命名空间
2.3 创建镜像仓库
1)填写仓库信息,点击“下一步”
2)选择步骤一中创建的github的仓库,勾选“海外机器构建”,点击“创建镜像仓库”
PS.因为我的阿里云已经绑定了github账号,故截图是直接选择,如何绑定账号请按照阿里云的提示操作。
2.4 构建镜像
1)进入刚创建的仓库
2)点击“构建”后,点击“添加规则”
3)选择类型为“Branch”,选择分支(本例中Dockerfile推送到了master),接着填写构建镜像的tag,点击“确定”
4)点击“立即构建”
等待片刻后,就可以从阿里云拉取镜像了。通过“日志”可以查看镜像的构建情况。
通过日志,实际操作是通过docker build拉取了该镜像并保存到阿里云仓库。
三、获取镜像
3.1 登录镜像仓库
由于阿里云上创建是私有仓库,故通过根据不同的数据中心登录(我这里因为选择是杭州1,故登录registry.cn-hangzhou.aliyuncs.com)
docker login --username=yonghuming registry.cn-zhangjiakou.aliyuncs.com
输入密码
3.2 拉取镜像
docker pull <阿里云构建的镜像>
docker pull registry.cn-zhangjiakou.aliyuncs.com/han20023302/k8s:v2.0.0
3.3 修改tag为原始的仓库
docker tag <阿里云构建的镜像> <原始镜像>
docker tag registry.cn-zhangjiakou.aliyuncs.com/han20023302/k8s:v2.0.0 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.0.0
经过上面的操作,即可获得原镜像。
本文转载自:https://www.cnblogs.com/straycats/p/14405513.html