最近在学习Knative的时候遇到了很多镜像无法拉取的问题,导致很多组件无法正常启动。例如gcr.io域名下的镜像就无法拉取,这给工作学习带来了非常的不便,通过查阅资料发现可以通过阿里云镜像服务来拉取国外镜像。
【1】准备一个无法正常拉取的外国外域名的镜像,比如下面这给,这个组件是Knative Serving中的activator组件
gcr.io/knative-releases/knative.dev/serving/cmd/activator@sha256:f5e1cd14f26ec76fb84ef42b04efeb45cf393d617d896d5525abf5f912a487b0
【2】阿里云镜像需要依托于代码平台,这需要我们将镜像配置上传到代码平台上,这里使用GitHub。
在GitHub上创建一个仓库专门用来拉取国外镜像,然后根据需要拉取的镜像创建相应的目录,目录路径不需要一直,自己做好区分即可,然后再对应的目录下创建Dockerfile文件,里面只需要写上一句from imageNme即可
【3】在阿里云平台上创建镜像仓库,进入阿里云平台,选择容器镜像服务
【4】创建命名空间,创建仓库
【5】选择GitHub代码平台,选择刚才创建的仓库,并且选择海外机器构建
【6】点击构建,选择添加规则,根据GitHub中Dockerfile的信息填写上下文路径和镜像版本号,保存成功后,点击立即构建,等待几十秒后成功即可完成
【7】如下所示构建成功,下面所示的镜像版本就是当前仓库镜像的版本
【8】拉取镜像测试
【9】可以看到拉取镜像非常的快速,上面完成之后就可以使用当前镜像地址替换掉国外无法拉取的镜像地址