2021年没有外网服务器,怎么下载gcr.io镜像?

背景

部署 k8s 时经常遇到的难题:如何下载 gcr.io 的镜像?下面以 ingress-nginx:0.43.0 为例介绍踩过的坑及最终的解决办法。

踩过的坑

谷歌云

注册谷歌云账户,通过控制台下载 ingress-nginx:0.43.0 镜像,重命名后上传回国内的镜像仓库,以供使用。
亲测上传一个 282 MB 的镜像,阿里云镜像仓库,腾讯镜像仓库,一个小时还未上传完成,放弃。
于是注册 hub.docker.com 上传到 hub.docker.com,速度很快,本机从 hub.docker.com 拉取镜像,又是二十分钟还未完成,放弃。

阿里云代理仓库

阿里云代理仓库地址为:registry.aliyuncs.com/google_containers
很多新的镜像都没有,猜测是不维护了,放弃。

解决方法

后来在阿里云镜像仓库那里看到一个海外构建的选项,于是尝试以下方法:

github

在 github 创建一个 repository,创建好 git clone 到本地,在本地创建所需下载镜像的 Dockerfile,本地目录的层级可以是:镜像名 --> 版本号 --> Dockerfile 。创建后上传到 github,这是我的github地址 ,参考如下截图:

打开 ingress-nginx 的 Dockerfile

FROM k8s.gcr.io/ingress-nginx/controller:v0.43.0
MAINTAINER liyi

看到这里应该差不多明白了,就是让阿里云镜像仓库去帮我们下载这个镜像。

阿里云镜像

创建镜像仓库

选择镜像构建所依赖的在github仓库
切记勾上 海外机器构建

添加构建规则

点击立即构建

等一会镜像就构建成功了,可以看到日志:

docker image building is started ...
[ fetch stage begin.]
fetch dockerfile and context
Cloning into '/user_data/1351706646383462/GIT_HUB/fsckzy-quayio'...
[fetch successfully.]
==========================================
......
==========================================
[docker build stage begin.]
Sending build context to Docker daemon 2.048kB
Step 1/2 : FROM k8s.gcr.io/ingress-nginx/controller:v0.43.0
v0.43.0: Pulling from ingress-nginx/controller
801bfaa63ef2: Already exists
ebc605c8c477: Pulling fs layer
......
...
ad50de7c1a14: Pull complete
Digest: sha256:9bba603b99bf25f6d117cf1235b6598c16033ad027b143c90fa5b3cc583c5713
Status: Downloaded newer image for k8s.gcr.io/ingress-nginx/controller:v0.43.0
---> 38dca1cbd231
Step 2/2 : MAINTAINER liyi
---> Running in 7a3ef71d3191
Removing intermediate container 7a3ef71d3191
---> 1feb7033bf16
Successfully built 1feb7033bf16
Successfully tagged registry.cn-hangzhou.aliyuncs.com/smy-repo/ingress-nginx:0.43.0
[ build successfully.]
==========================================
[push stage begin.]

本机下载该镜像,再重命名即可

docker pull registry.cn-hangzhou.aliyuncs.com/smy-repo/ingress-nginx:0.43.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海口-熟练工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值