一. 背景
使用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為例
- 建立kube-apiserver映象的Dockerfile
- 使用阿里雲的容器映象服務建立一個倉庫
4、設定構建規則並構建
- 完成海外映象的下載
[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
到此構建海外映象就結束了。
更多科技諮詢,請關注微信公眾號:山河程式設計
如果您覺得這個對您 有用,希望您能點贊,收藏加關注,謝謝啦!
如果您的朋友也需要,一起分享給他,咱們一起成長。