將容器映像推送至 Azure Container Registry

已完成

在此單元中,您會使用 Azure Container Registry 服務,將容器映像推送至您的 Azure Container Registry。 Azure Container Registry 可讓您針對所有類型的容器部署,在私人登錄中建置、儲存和管理容器映像和成品。 將 Azure 容器登錄與您現有的容器開發與部署管線搭配使用。

備註

如果您的工作階段已因閒置而逾時,或是在另一個時間點或從另一個 CLI 執行此步驟,您可能必須使用下列命令重新初始化環境變數並重新驗證:

還原設定時使用的資源變數值。 請將下方的 <your-subscription-ID> 替換為您用於此模組的訂用帳戶 ID。 如果登入時出現訂閱選擇器,請選擇同一個訂閱。 一次執行一個驗證指令。 在az account show之後,請確認作用中的訂用帳戶是否符合設定,然後再繼續。 如果指令失敗,請停止並解決錯誤。

export AZ_RESOURCE_GROUP=java-containerization-demo-rg
export AZ_CONTAINER_REGISTRY=<your-container-registry>
export AZ_KUBERNETES_CLUSTER=java-containerization-demo-aks
export AZ_LOCATION=<your-Azure-region>
export AZ_KUBERNETES_CLUSTER_DNS_PREFIX=<your-unique-DNS-prefix-to-access-your-AKS-cluster>
az login
az account set --subscription "<your-subscription-ID>"
az account show --output table
az acr login --name "$AZ_CONTAINER_REGISTRY"

推送容器映像

您可以將新建置的容器映像推送至 Azure Container Registry。 透過這樣做,您的容器映像會透過網路接近您的所有 Azure 資源,例如您的 Azure Kubernetes 服務 (AKS) 叢集。 稍後,您會將 AKS 設定為從登錄提取flightbookingsystemsample映像。 若要將容器映像推送至登錄,請使用下列步驟:

  1. 如果您尚未登入 Azure Container Registry,請使用下列命令:

    az acr login
    
  2. 在標記或推送前,請先檢查實際的本機映像檔:

    docker image inspect flightbookingsystemsample:latest \
      --format '{{.Os}}/{{.Architecture}}'
    

    對於此路徑,結果必須為 linux/amd64。 如果有差異,請重新建置並依前一單元所述,使用--platform linux/amd64執行映像,然後再繼續。 標記與推送可保留映像平台;不會變更其架構。

  3. 使用下列命令,以 Azure Container Registry 標記先前建置的容器映像:

    docker tag flightbookingsystemsample $AZ_CONTAINER_REGISTRY.azurecr.io/flightbookingsystemsample
    
  4. 使用下列命令將容器映像推送至您的 Azure Container Registry:

    docker push $AZ_CONTAINER_REGISTRY.azurecr.io/flightbookingsystemsample
    
  5. 推送完成後,您可以使用下列命令來檢視新推送之映像的 Azure Container Registry 映像中繼資料:

    az acr repository show \
        --name $AZ_CONTAINER_REGISTRY \
        --image flightbookingsystemsample:latest
    

以下歷史元資料為說明性資料。 您的映像摘要和時間戳記在建置並推送更新後的映像後可能會有所不同:

{
  "changeableAttributes": {
    "deleteEnabled": true,
    "listEnabled": true,
    "readEnabled": true,
    "writeEnabled": true
  },
  "createdTime": "2024-11-15T12:23:55.5624474Z",
  "digest": "sha256:13851640a3****************************************f7f1e482c6eaa825",
  "lastUpdateTime": "2024-11-15T12:23:55.5624474Z",
  "name": "latest",
  "signed": false
}

您的容器映像現在位於 Azure 容器登錄內,並已準備好供 AKS 等 Azure 服務進行部署。