51ad70f3d52dc2e5456c5c4f80599a65.png
雖然透過 Dockerfile 可以快速又方便的產生出新的 image,但是在某些特殊環境,常常還是會失敗 (比如拉不到某些套件的 respostory 之類的)。即使拉的到,卻還是要花很長的時間重新 build。那是否能把 build 好的檔案存起來,需要的時候拉下來直接用呢?
Google 的 container registry 就是一個方便的選擇。
  • 建立專案
    這個就是連到 https://console.cloud.google.com 然後把該做該填的弄一弄,之後就要 [啟用 API]
    記得找到這個,並按下啟用
     
  • 下載 Google Cloud SDK
    到這個網頁,https://cloud.google.com/sdk/docs/ ,挑選你的作業系統,並安裝 Google Cloud SDK
    如果是 CentOS 可以用下列語法快速安裝
    sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM
    [google-cloud-sdk]
    name=Google Cloud SDK
    baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
           https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOM
    
    yum -y install google-cloud-sdk
  • 設定權限/授權
    在 console 下執行
    gcloud auth configure-docker
    會出現下列訊息
    The following settings will be added to your Docker config file
    located at [/root/.docker/config.json]:
     {
      "credHelpers": {
        "gcr.io": "gcloud",
        "us.gcr.io": "gcloud",
        "eu.gcr.io": "gcloud",
        "asia.gcr.io": "gcloud",
        "staging-k8s.gcr.io": "gcloud",
        "marketplace.gcr.io": "gcloud"
      }
    }
    
    Do you want to continue (Y/n)?  y
    
    Docker configuration file updated.
    
     
  • 產生憑證 Key (json)
    記得選取 [服務帳戶金鑰]
    並且產生 json 檔案 (要保存好)
  • 設定權限環境變數
    export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"
    把上一個步驟的 json 檔案設定到環境變數後,這樣就會簡單一點,能夠直接完成認證
  • 標記 docker 
    把已經 build 好的 docker 指定 tag
    docker tag your-image gcr.io/[PROJECT-ID]/your-image:tag1
    上傳 docker image
    docker push gcr.io/[PROJECT-ID]/your-image:tag1
    
  • 下載 docker image
    接下來就是使用端了,只要把 image 拉下來,就可以不需要 build 直接使用囉!~
    如果該機器還沒有做過認證的話,可以簡單地輸入
     gcloud auth login
    完成 offline 的授權即可
    docker pull gcr.io/[PROJECT-ID]/your-image:tag1
回應
訪客如要回應,請先 登入