阿里code和阿里鏡像hub獲取國內無法下載的鏡像的方法
玩docker和kubernetes,經常遇到國內網絡無法下載鏡像,或者局域網內很難搞docker鏡像等問題;解決這個問題通常有2種方法:
- 配置鏡像代理;
- 搭建自己的鏡像倉庫。
網上很多教程採用Github和DockerHub搭建自己的鏡像倉庫,而DockerHub上不去也是件很尷尬的事情;於是本文提供一種與Github和DockerHub搭建自己的鏡像倉庫類似的方法,採用阿里code和阿里的鏡像hub搭建自己的鏡像倉庫。在此之前採用Github與阿里鏡像hub搭建,不知道什麼原因很難關聯上;
首先,介紹如何搭建自己鏡像倉庫,然後,介紹如何配置代理;
一、 阿里code上創建一個代碼倉庫
阿里code的地址,很多人還不知道,這裏貼一下,和Github一樣,命令也一樣。https://code.aliyun.com
可以創建私有倉庫或public的倉庫;如上圖所示,創建了一個my-kubenetes-hub的項目;
二、 阿里雲上創建鏡像倉庫
- 進入阿里的管理控制檯https://cr.console.aliyun.com;在搜索裏面找到容器鏡像服務,點擊進去;
- 創建一個命名空間,如下圖所示操作;
- 創建一個倉庫,如下圖所示;
- 填寫相關信息之後,點擊下一步;
- 關聯阿里code上新建的代碼倉庫;
- 添加構建規則
注意:版本號是即將構建的鏡像的版本號;比如我想構建一個k8s.gcr.io/kube-apiserver:v1.13.2鏡像,我填寫了v1.13.2;
- 填寫相關信息之後,點擊下一步;
三、阿里code上提交一個Dockerfile文件,並寫入需要構建的鏡像代碼
-
創建一個Dockerfile文件;並寫入需要構建的鏡像的代碼;
FROM k8s.gcr.io/kube-apiserver:v1.13.2
這裏可以在界面上操作push一個文件,也可以通過命令去add->commit->push一個文件;我這裏是在界面上直接操作了,比較方便;
-
在回到阿里鏡像倉庫界面,發現自動構建了,如果鏡像比較小,很快就會顯示“成功”;如果鏡像比較大,會顯示“構建中”;
四、 鏡像操作
參考“基本信息”標籤頁裏面有鏡像操作的指南,如何登錄和pull剛剛構建的鏡像,以及tag等操作;
例如:
docker pull registry.cn-hangzhou.aliyuncs.com/my-ali-hub/my-repo:v1.13.2
docker tag registry.cn-hangzhou.aliyuncs.com/my-ali-hub/my-repo:v1.13.2 k8s.gcr.io/kube-apiserver:v1.13.2
docker rmi registry.cn-hangzhou.aliyuncs.com/my-ali-hub/my-repo:v1.13.2
五、 配置阿里鏡像倉庫代理
把最後的那個代碼複製執行以下就OK了;是不是so easy;以後下載鏡像就會從阿里鏡像上去代理了;