

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

# 建立自訂映像並推送至 Amazon ECR
<a name="studio-updated-byoi-how-to-prepare-image"></a>

此頁面提供如何建立本機 Dockerfile、建置容器映像，並將其新增至 Amazon Elastic Container Registry (Amazon ECR) 的指示。

**注意**  
在下列範例中，不會指定標籤，且預設會套用 `latest` 標籤。如果您想要指定標籤，則需要將 `:tag` 附加到映像名稱的結尾。如需詳細資訊，請參閱「Docker 文件」**中的 [Docker 映像檔標籤](https://docs.docker.com/reference/cli/docker/image/tag/)。

**Topics**
+ [建立本機 Dockerfile 並建置容器映像](#studio-updated-byoi-how-to-create-local-dockerfile)
+ [將 Docker 映像檔新增至 Amazon ECR](#studio-updated-byoi-add-container-image)

## 建立本機 Dockerfile 並建置容器映像
<a name="studio-updated-byoi-how-to-create-local-dockerfile"></a>

使用下列指示，搭配所需軟體和相依性建立 Dockerfile。

**建立 Dockerfile**

1. 首先為後續的 AWS CLI 命令設定變數。

   ```
   LOCAL_IMAGE_NAME=local-image-name
   ```

   `local-image-name` 是您在這裡定義的本機裝置上的容器映像名稱。

1. 建立名為 `Dockerfile` 且符合 [自訂映像規格](studio-updated-byoi-specs.md) 中規格的文字型文件。

   您可以在 [Dockerfile 範例](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates) 中找到受支援應用程式的 `Dockerfile` 範例。
**注意**  
如果您要將自有映像帶入 SageMaker Unified Studio，則需要遵循《Amazon SageMaker Unified Studio 使用者指南》**中的 [Dockerfile 規格](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)。  
您可以在《Amazon SageMaker Unified Studio 使用者指南》**的 [Dockerfile 範例中](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)找到 SageMaker Unified Studio 的 `Dockerfile` 範例。

1. 在包含 `Dockerfile` 的目錄中，使用下列命令建置 Docker 映像檔。句點 (`.`) 指定 `Dockerfile` 應該在組建命令的上下文中。

   ```
   docker build -t ${LOCAL_IMAGE_NAME} .
   ```

   建置完成後，您可以使用下列命令列出容器映像資訊。

   ```
   docker images
   ```

1. (選用) 您可以使用下列命令測試映像。

   ```
   docker run -it ${LOCAL_IMAGE_NAME}
   ```

   在輸出中，您將發現您的伺服器正在 URL 上執行，例如 `http://127.0.0.1:8888/...`。您可以透過將 URL 複製到瀏覽器來測試映像。

   如果這無法運作，您可能需要在 docker run 命令中包含 `-p port:port`。此選項會將容器上的公開連接埠對應至主機系統上的連接埠。如需 docker run 的詳細資訊，請參閱「Docker 文件」**中的[執行容器](https://docs.docker.com/engine/containers/run/)。

   一旦確認了伺服器運作正常，您就可以停止伺服器並關閉所有核心，然後再繼續。這些指示可供輸出檢視。

## 將 Docker 映像檔新增至 Amazon ECR
<a name="studio-updated-byoi-add-container-image"></a>

若要將容器映像新增至 Amazon ECR，您需要執行下列動作：
+ 建立 Amazon ECR 儲存庫。
+ 登入您的預設登錄檔。
+ 將映像推送至 Amazon ECR 儲存庫。

**注意**  
Amazon ECR 儲存庫必須與您連接映像的網域 AWS 區域 位於相同的 中。

**建置容器映像並將其推送至 Amazon ECR**

1. 首先為後續的 AWS CLI 命令設定變數。

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   ECR_REPO_NAME=ecr-repository-name
   ```
   + `account-id` 是您的帳戶 ID。您可以在任何 AWS 主控台頁面的右上角找到此項目。例如，[SageMaker AI 主控台](https://console.aws.amazon.com/sagemaker)。
   + `aws-region` 是 Amazon SageMaker AI 網域 AWS 區域 的 。您可以在任何 AWS 主控台頁面的右上角找到此項目。
   + `ecr-repository-name` 是您在這裡定義的 Amazon Elastic Container Registry 儲存庫名稱。若要檢視 Amazon ECR 儲存庫，請參閱 [Amazon ECR 主控台](https://console.aws.amazon.com/ecr)。

1. 登入 Amazon ECR 並登入 Docker。

   ```
   aws ecr get-login-password \
       --region ${REGION} | \
       docker login \
       --username AWS \
       --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com
   ```

   驗證成功後，您將收到成功登入訊息。
**重要**  
如果收到錯誤，您可能需要安裝或升級至最新版本的 AWS CLI。如需詳細資訊，請參閱「AWS Command Line Interface 使用者指南」**中的[安裝 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 以與 Amazon ECR 相容的格式標記映像，來推送到您的儲存庫。

   ```
   docker tag \
       ${LOCAL_IMAGE_NAME} \
       ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

1. 使用 AWS CLI命令在 Amazon ECR 儲存庫中建立儲存庫。若要使用 Amazon ECR 主控台建立儲存庫，請參閱[建立 Amazon ECR 私有儲存庫來存放映像](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html)。

   ```
   aws ecr create-repository \
       --region ${REGION} \
       --repository-name ${ECR_REPO_NAME}
   ```

1. 將映像推送至您的 Amazon ECR 儲存庫。您也可以標記 Docker 映像檔。

   ```
   docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

一旦映像成功新增至 Amazon ECR 儲存庫，您就可以在 [Amazon ECR 主控台](https://console.aws.amazon.com/ecr)中檢視該映像。