iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
1
DevOps

現代化小白也要嘗試的容器手札系列 第 14

Day14. Docker Registry on GCR 實測

鬆獅容器小白14連拍

https://ithelp.ithome.com.tw/upload/images/20201005/20025481qF7buw8Y6W.jpg

Docker Registry倉庫

科普一下,依照字義上直翻我們叫它註冊表,主要有以下特性:

  1. 一個無狀態且高度擴展的伺服器端應用程序。
  2. 儲存映像檔並允許需求方來分配映像。
  3. 映像緊密整合至需求方的工作開發流程中。
  4. 註冊表屬Apache機構為免費的開源代碼。

其實一般我們熟知常看到的都是公用容器儲存服務讓我們可以無後顧之憂直接取用,但實際上公用免費雖然便利但是就沒有隱私與個人資產的保護觀念。有界於此....

各公有雲上的容器倉庫服務都有已經可以非常便利的按幾個按鈕就可以搭建出私人倉庫,連知名Docker Hub也有私人倉庫,只需要使用者付錢就可以搞定。

故想要花錢了事就選擇自己熟悉或業務流程上合規的就可以選用,如果已經有點子開發出一個雛形並容器化,雖然也有很多自建私人倉庫的技術文件,但這樣疊層架屋不但辛苦付出時間精力除了只是做出人家一個基本堪用的功能外,後續的運帷也是很大的問題!

Google Cloud Registry 服務設置
如果不清楚如何註冊請參考小弟2018年的Google Gloud免費試用申請
設置GCR步驟遠比Azure ACR還要少之又少,啟用步驟指示的Container Registry API
https://ithelp.ithome.com.tw/upload/images/20200920/20025481czsBx56Tsf.png
啟用完成
https://ithelp.ithome.com.tw/upload/images/20200920/2002548140qsZfr7wk.png
啟用安全掃描多一層上傳惡意映像檔的保障(可選擇)
https://ithelp.ithome.com.tw/upload/images/20200920/200254813sIsA0g0xu.png
啟用完成
https://ithelp.ithome.com.tw/upload/images/20200920/20025481rGTXoBO53O.png

原來Ubuntu 18.04繼續我們本機上既有的映像檔上傳放置Google Cloud的旅途。
既然是上傳到任意他牌的容器服務一定會有兩件事需要注意:

  • 他牌所能支援的SDK套件指令需要安裝。
  • 不是任何人知道URL與檔案名稱路徑就能隨意放置的,中間是要信任的身分驗證。

其實就是參考了安裝GCP SDK作法卻失敗的錯誤,官方文件請參閱>>>
Installing Google Cloud SDK
錯誤訊息
E: Conflicting values set for option Signed-By regarding source https://packages.cloud.google.com/apt/ cloud-sdk: /usr/share/keyrings/cloud.google.gpg !=
https://ithelp.ithome.com.tw/upload/images/20200920/20025481F1aOZT2MZC.png

重新再出發,相關Google套件移除
E: The list of sources could not be read.
sudo rm /usr/share/keyrings/cloud.google.gpg
sudo rm /usr/share/keyrings/cloud.google.gpg~
sudo rm /etc/apt/sources.list.d/google-cloud-sdk.list
https://ithelp.ithome.com.tw/upload/images/20200920/20025481zl8O58SGx2.png

相關Google套件重整標準安裝
Step.1
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
https://ithelp.ithome.com.tw/upload/images/20200920/20025481HNCX5lXzSP.png

Step.2
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
https://ithelp.ithome.com.tw/upload/images/20200920/20025481M5fjF6cp6v.png

Step.3
sudo apt-get update && sudo apt-get install google-cloud-sdk
https://ithelp.ithome.com.tw/upload/images/20200920/20025481Wt00Ll3c3r.png

Step.4 重要的驗證看起來已經OK.
https://accounts.google.com/o/oauth2/auth?client_id=32555940559.apps.googleu sercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=openid+htt ps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleap is.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fappengi ne.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute+https%3A%2F%2Fwww.goo gleapis.com%2Fauth%2Faccounts.reauth&code_challenge=lTN0JeNSELk6mUS1WED4gELXI71Y 1JtqsluYXPtbqTs&code_challenge_method=S256&access_type=offline&response_type=cod e&prompt=select_account
https://ithelp.ithome.com.tw/upload/images/20200920/20025481a7HiEnpGr8.png
https://ithelp.ithome.com.tw/upload/images/20200920/20025481is1SiAcYnw.png
https://ithelp.ithome.com.tw/upload/images/20200920/20025481aPDyvXkJCw.png

Step.5 透過gcloud指令或其他上傳嘗試已經吃的到GCP SDK套件
docker push asia.gcr.io/it-12-lab/sinatra/gylabdk :v1
https://ithelp.ithome.com.tw/upload/images/20200920/20025481Nq60dlUk1k.png
https://ithelp.ithome.com.tw/upload/images/20200920/20025481LDBtrOrskc.png

Google Cloud Registry 目前可用地區參考

  • us.gcr.io hosts image in data centers in the United States, in a separate storage bucket from images hosted by gcr.io
  • eu.gcr.io hosts the images in the European Union
  • asia.gcr.io hosts images in data centers in Asia

最終結果真令人失落,不知道是否還有別人也有此狀況,還是會持續設法解決此問題,應該只是臨門一腳而已了
GCR
https://ithelp.ithome.com.tw/upload/images/20200920/20025481cvM5ojV5Vh.png


上一篇
Day13. Docker Container 操作日常
下一篇
Day15. Docker Volume 入門示範
系列文
現代化小白也要嘗試的容器手札30

尚未有邦友留言

立即登入留言