

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將多架構映像推送至 Amazon ECR 私有儲存庫
<a name="docker-push-multi-architecture-image"></a>

您可以透過建立和推送 Docker 資訊清單清單，將多架構映像推送至 Amazon ECR 儲存庫。*資訊清單列表*是藉由指定一或多個映像名稱而建立的映像清單。在大多數情況下，資訊清單清單是從提供相同函數，但適用於不同作業系統或架構的映像建立的。資訊清單不是必要選項。如需詳細資訊，請參閱 [Docker 資訊清單](https://docs.docker.com/engine/reference/commandline/manifest/)。

資訊清單列表可以像其他 Amazon ECR 映像一樣，在 Amazon ECS 任務定義或 Amazon EKS Pod 規格中提取或參考。

 **先決條件** 
+ 在您的 Docker CLI 中，開啟實驗性功能。如需實驗功能的資訊，請參閱 Docker 文件中的[實驗功能](https://docs.docker.com/engine/reference/commandline/cli/#experimental-features)。
+ 在您推送映像之前，Amazon ECR 儲存庫必須存在。如需詳細資訊，請參閱[建立 Amazon ECR 私有儲存庫以存放映像](repository-create.md)。
+ 您必須先將映像推送至儲存庫，才能建立 Docker 資訊清單。如需如何推送映像的資訊，請參閱 [將 Docker 映像推送至 Amazon ECR 私有儲存庫](docker-push-ecr-image.md)。

**將多架構 Docker 映像推送到 Amazon ECR 儲存庫**

1. 向打算推送映像的 Amazon ECR 登錄檔驗證您的 Docker 用戶端。所用的每個登錄檔皆必須取得身分驗證字符，字符有效期間為 12 個小時。如需詳細資訊，請參閱[Amazon ECR 中的私有登錄檔身分驗證](registry_auth.md)。

   若要向 Amazon ECR 登錄檔驗證 Docker，請執行 **aws ecr get-login-password** 命令。將身分驗證字符傳遞給 **docker login** 命令時，使用 `AWS` 的值作為使用者名稱並指定您要驗證的 Amazon ECR 登錄檔 URI。如果是向多個登錄進行驗證，您必須針對每個登錄重複此命令。
**重要**  
若您收到錯誤，請安裝或升級至最新版本的 AWS CLI。如需詳細資訊，請參閱《AWS Command Line Interface 使用者指南》**中的[安裝 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)。

   ```
   aws ecr get-login-password --region {{<region>}} | docker login --username AWS --password-stdin {{<{{aws_account_id}}>}}.dkr.ecr.{{<region>}}.amazonaws.com
   ```

1. 列出儲存庫中的映像，請確認映像標籤。

   ```
   aws ecr describe-images --repository-name {{my-repository}}
   ```

1. 建立 Docker 資訊清單列表。`manifest create` 命令會驗證參考的映像是否已在您的儲存庫中，並在本機建立資訊清單。

   ```
   docker manifest create {{aws_account_id}}.dkr.ecr.{{region}}.amazonaws.com/{{my-repository}} {{aws_account_id}}.dkr.ecr.{{region}}.amazonaws.com/{{my-repository}}:{{image_one_tag}} {{aws_account_id}}.dkr.ecr.{{region}}.amazonaws.com/{{my-repository}}:{{image_two}}
   ```

1. (選用) 檢查 Docker 資訊清單列表。這可讓您確認資訊清單列表中參照的每個映像資訊清單的大小和摘要。

   ```
   docker manifest inspect {{aws_account_id}}.dkr.ecr.{{region}}.amazonaws.com/{{my-repository}}
   ```

1. 將 Docker 資訊清單列表推送至您的 Amazon ECR 儲存庫。

   ```
   docker manifest push {{aws_account_id}}.dkr.ecr.{{region}}.amazonaws.com/{{my-repository}}
   ```