

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

# 建立 Amazon ECR 私有儲存庫以存放映像
<a name="repository-create"></a>

**重要**  
使用 AWS KMS (DSSE-KMS) 的雙層伺服器端加密僅適用於 AWS GovCloud (US) 區域。

建立 Amazon ECR 私有儲存庫，然後使用儲存庫來存放容器映像。遵循以下步驟，使用 AWS 管理主控台建立私有儲存庫。

**建立儲存庫 (AWS 管理主控台)**

1. 在 [https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories) 開啟 Amazon ECR 主控台。

1. 從導覽列選擇您儲存庫所建立的區域。

1. 選擇**私有儲存庫**，然後選擇**建立儲存庫**。

1. 在 **Repository name** (儲存庫名稱), 中，為您的儲存庫輸入獨一無二的名稱。儲存庫名稱可以自行指定 (例如 `nginx-web-app`)。或者，可以在其前面加上命名空間，以將儲存庫分組到類別中 (例如 `project-a/nginx-web-app`)。
**注意**  
儲存庫名稱可以是最多 `256` 個字元的容器。名稱必須以字母開頭，且只能包含小寫字母、數字、連字號、底線、句號和斜線。不支援使用雙正斜線。

1. 針對**影像標籤不可變性**，選擇下列其中一個儲存庫的標籤可變性設定。
   + **可互**斥 – 如果您想要覆寫影像標籤，請選擇此選項。建議用於使用提取快取動作的儲存庫，以確保 Amazon ECR 可以更新快取映像。此外，若要停用幾個可變標籤的標籤更新，請輸入標籤名稱或使用萬用字元 (\*) 來比對 **Mutable 標籤排除文字方塊中的多個類似標籤**。
   + **不可避免** – 如果您想要防止映像標籤遭到覆寫，且當推送具有現有標籤的映像時，它會套用至儲存庫中的所有標籤和排除項目，請選擇此選項。`ImageTagAlreadyExistsException` 如果您嘗試推送具有現有標籤的映像，Amazon ECR 會傳回 。此外，若要啟用幾個不可變標籤的標籤更新，請輸入標籤名稱或使用萬用字元 (\*) 在**不可分割標籤排除文字方塊中比對多個類似的標籤**。
**注意**  
不支援個別標籤可變性設定。

1. 針對**加密組態**，選擇 **AES-256** 或 ** AWS KMS**。如需詳細資訊，請參閱[靜態加密](encryption-at-rest.md)。

   1.  如果選擇 AWS KMS ，請在單層加密和雙層加密之間進行選擇。使用 AWS KMS 或雙層加密需支付額外費用。如需詳細資訊，請參閱 [Amazon ECR Service 定價](https://aws.amazon.com/ecr/pricing/)。

   1. 根據預設，`aws/ecr`會選擇具有別名的 AWS 受管金鑰。當您第一次建立啟用 AWS KMS 加密的儲存庫時，會在您的帳戶中建立此金鑰。選取**客戶受管金鑰 （進階）** 以選擇您自己的 AWS KMS 金鑰。 AWS KMS 金鑰必須與叢集位於相同的區域。選取**建立 AWS KMS 金鑰**以導覽至 AWS KMS 主控台，以建立您自己的金鑰。

1. 對於**映像掃描設定**，雖然您可以在儲存庫層級指定基本掃描的掃描設定，但最佳實務是在私有登錄檔層級指定掃描組態。在私有登錄檔層級設定掃描設定可讓您在增強型掃描或基本掃描之間進行選擇，也可讓您定義篩選條件以指定應掃描的儲存庫。

1. 選擇**建立**。

**建立儲存庫 (AWS CLI)**

1. 您可以使用 AWS CLI 搭配 **aws ecr create-repository**命令來建立儲存庫。

   ```
   aws ecr create-repository \
               --repository-name {{hello-repository}} \
               --region {{region}}
   ```

1. 如果您已定義儲存庫建立範本，您可以使用熟悉的 Amazon ECR 推送命令搭配所需的儲存庫名稱來推送映像，以建立儲存庫。Amazon ECR 將使用儲存庫建立範本的預先定義設定，自動為您建立儲存庫。如果您尚未定義儲存庫建立範本，對不存在映像儲存庫的請求將會失敗。

   ```
   docker push aws_account_id.dkr.ecr.region.amazonaws.com/prefix/my-new-repository:tag
   ```

## 後續步驟
<a name="procedure_next_steps"></a>

若要檢視將映像推送到儲存庫的步驟，請選取儲存庫，然後選擇**檢視推送命令**。如需將映像推送到您的儲存庫的詳細資訊，請參閱 [將映像推送至 Amazon ECR 私有儲存庫](image-push.md)。