===============================================
2021/2/15_第1次修改 ccb_warlock
===============================================
在試驗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 registry.cn-hangzhou.aliyuncs.com
3.2 拉取鏡像
docker pull <阿里雲構建的鏡像>
3.3 修改tag為原始的倉庫
docker tag <阿里雲構建的鏡像> <原始鏡像>
經過上面的操作,即可獲得原鏡像。