­

卧槽,原來不需要翻牆就可以構建海外鏡像

一. 背景

使用docker或者k8s的過程中,我們可能遇到鏡像無法下載的情況,例如:kubernetes的kube-apiserver鏡像,這是因為其倉庫在海外,我們的網路被牆,我發獲取到該資源,使用合法的方式,成本又太高,今天小編來分享一個簡單而又實用的海外鏡像構建方法。
在這裡插入圖片描述

二. 實現原理

首先利用docker構建鏡像的方式,定義海外鏡像的Dockerfile,裡面只需要編寫「 FROM k8s.gcr.io/kube-apiserver:v1.20.3」
然後利用阿里雲容器鏡像服務,創建一個關聯上程式碼倉庫並且使用海外機器構建的倉庫,這樣阿里雲就可以下載海外鏡像到阿里雲。
再然後,我們將剛剛在阿里雲上構建的pull到本地,通過docker tag 的方式需改成我們需要的鏡像。

三. 所需要的平台

所需要的平台有GitHub和阿里雲。

四. 實現步驟

以下將以構建k8s.gcr.io/kube-apiserver:v1.20.3為例
在這裡插入圖片描述

  1. 創建kube-apiserver鏡像的Dockerfile

在這裡插入圖片描述

  1. 使用阿里雲的容器鏡像服務創建一個倉庫

在這裡插入圖片描述
在這裡插入圖片描述

4、設置構建規則並構建

在這裡插入圖片描述
在這裡插入圖片描述

  1. 完成海外鏡像的下載

圖片
圖片

[root@kubernetes-master-01 ~]# docker pull registry.cn-qingdao.aliyuncs.com/alvinos/kube-apiserver:v1.20.3
v1.20.3: Pulling from alvinos/kube-apiserver
fefd475334af: Already exists 
742efefc8a44: Already exists 
3e9abf3317b1: Pull complete 
Digest: sha256:4250b36e06a5083343f97b3097d3d647703f0e6b580373224ab846db7e18df3f
Status: Downloaded newer image for registry.cn-qingdao.aliyuncs.com/alvinos/kube-apiserver:v1.20.3
registry.cn-qingdao.aliyuncs.com/alvinos/kube-apiserver:v1.20.3
[root@kubernetes-master-01 ~]# docker tag registry.cn-qingdao.aliyuncs.com/alvinos/kube-apiserver:v1.20.3 k8s.gcr.io/kube-apiserver:v1.20.3
[root@kubernetes-master-01 ~]# docker images | grep k8s
k8s.gcr.io/kube-apiserver                                         v1.20.3    2a2ba256a50b   4 months ago    122MB

到此構建海外鏡像就結束了。

更多科技諮詢,請關注微信公眾號:山河編程

如果您覺得這個對您 有用,希望您能點贊,收藏加關注,謝謝啦!

如果您的朋友也需要,一起分享給他,咱們一起成長