Docker 快速入門導覽課程

本頁說明如何使用 Cloud Build 建構 Docker 映像檔,並將映像檔推送至 Container Registry。您會先使用 Dockerfile 建構映像檔,然後使用 Cloud Build 的建構設定檔建構相同的映像檔。

事前準備

  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 在 GCP 主控台中,前往「Manage resources」(管理資源) 頁面,選取或建立專案。

    前往「Manage resources」(管理資源) 頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

  4. 啟用 Cloud Build API。

    啟用 API

  5. 安裝並初始化 Cloud SDK

登入 Google Cloud

  1. 授權 gcloud 指令列工具存取您的專案:

    gcloud auth login
    
  2. 設定 gcloud 工具適用的專案,其中 [PROJECT_ID] 是您在上一節建立或選取的 GCP 專案 ID。

    gcloud config set project [PROJECT_ID]
    

準備原始碼檔案

您需要有一些範例原始碼才能建構,您將在本節中建立簡單的 Hello World 範例與 Dockerfile

  1. 建立名為 quickstart.sh 的檔案,其中含有下列內容:

    #!/bin/sh
    echo "Hello, world! The time is $(date)."
    
  2. 建立名為 Dockerfile 的檔案,其中含有下列內容:

    FROM alpine
    COPY quickstart.sh /
    CMD ["/quickstart.sh"]
    
  3. 開啟終端機視窗 (如果尚未開啟)。

  4. 執行下列指令以將 quickstart.sh 設定為可執行:

    chmod +x quickstart.sh
    

使用 Dockerfile 建構

Cloud Build 允許您使用 Dockerfile 建構 Docker 映像檔,您不需要有單獨的建構設定檔。

從含有 quickstart.shDockerfile 的目錄中執行下列指令,其中 [PROJECT_ID] 是您的 GCP 專案 ID:

    gcloud builds submit --tag gcr.io/[PROJECT_ID]/quickstart-image .

建構完成後,畫面會顯示類似以下的輸出:

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  9S    gs://[PROJECT_ID]_cloudbuild/source/1508159187.8-b0d8841d51674a30aebd1e55bb99486f.gz  gcr.io/[PROJECT_ID]/quickstart-image (+1 more)       SUCCESS

您已經使用 Dockerfile 建構了名為 quickstart-image 的 Docker 映像檔,並將此映像檔推送至 Container Registry。

使用建構設定檔建構

您會在本節中使用建構設定檔建構同上的 Docker 映像檔。建構設定會根據您的規則命令 Cloud Build 執行工作。

  1. 在含有 quickstart.shDockerfile 的同一個目錄中,建立名為 cloudbuild.yaml 的檔案,其中含有下列內容。這個檔案是您的建構設定檔。在建構時間,Cloud Build 會將 $PROJECT_ID 自動替換為您的專案 ID。

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/quickstart-image', '.' ]
    images:
    - 'gcr.io/$PROJECT_ID/quickstart-image'
    
  2. 執行以下指令以啟動建構:

    gcloud builds submit --config cloudbuild.yaml .
    

建構完成時,畫面會顯示類似以下的輸出:

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  8S    gs://[PROJECT_ID]_cloudbuild/source/1508158566.55-725755714baa4b7e9e99984c422ec4e2.gz  gcr.io/[PROJECT-ID]/quickstart-image (+1 more)       SUCCESS

您已經使用建構設定檔建構 quickstart-image,並將映像檔推送至 Container Registry。

查看建構詳細資料

  1. 在 Google Cloud Platform 主控台開啟「Cloud Build」頁面。

    開啟 Cloud Build 頁面

  2. 選取您的專案並按一下 [Open] (開啟)

    畫面會顯示「Build history」(建構歷史記錄) 頁面:

    建構記錄頁面的螢幕擷圖

  3. 按一下特定建構。

    畫面會顯示「Build details」(建構詳細資料) 頁面:

  4. 按一下映像檔。

    映像檔連結的螢幕擷圖

    畫面會在「Container Registry」頁面顯示映像檔詳細資料。

選用:執行 Docker 映像檔

如要驗證您建構的映像檔是否可如預期正常運作,可以使用 Docker 來執行該映像檔。

  1. 安裝 Docker

  2. 設定讓 Docker 在與 Container Registry 互動時使用您的 Container Registry 憑證 (您只需要執行一次此動作):

    gcloud auth configure-docker
    

    畫面會顯示類似以下的訊息:

    The following settings will be added to your Docker config file
    located at [/.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)?
    
  3. 輸入 y 後按 Enter 鍵。

  4. 執行您之前建構的 Docker 映像檔,其中 [PROJECT_ID] 是您的 GCP 專案 ID:

    docker run gcr.io/[PROJECT_ID]/quickstart-image
    

    畫面會顯示類似以下的輸出:

    Hello, world! The time is Fri Feb  2 16:09:54 UTC 2018.
    

清除所用資源

如要避免系統向您的 GCP 帳戶收取您在快速入門導覽課程中所用資源的相關費用:

  1. 在 Google Cloud Platform 主控台中開啟「Container Registry」頁面。

    開啟「Container Registry」頁面

  2. 選取您的專案並按一下 [Open] (開啟)

  3. 按一下 [quickstart-image]

  4. 選取所有映像檔並按一下 [Delete] (刪除)

您現在已經刪除了您在本快速入門導覽課程期間建立的映像檔。

就這麼簡單,您已經完成本快速入門導覽課程!

後續步驟

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Build