View a markdown version of this page

建立自訂映像並推送至 Amazon ECR - Amazon SageMaker AI

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

建立自訂映像並推送至 Amazon ECR

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

注意

在下列範例中,不會指定標籤,且預設會套用 latest 標籤。如果您想要指定標籤,則需要將 :tag 附加到映像名稱的結尾。如需詳細資訊,請參閱「Docker 文件」中的 Docker 映像檔標籤

建立本機 Dockerfile 並建置容器映像

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

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

    LOCAL_IMAGE_NAME=local-image-name

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

  2. 建立名為 Dockerfile 且符合 自訂映像規格 中規格的文字型文件。

    您可以在 Dockerfile 範例 中找到受支援應用程式的 Dockerfile 範例。

    注意

    如果您要將自有映像帶入 SageMaker Unified Studio,則需要遵循《Amazon SageMaker Unified Studio 使用者指南》中的 Dockerfile 規格

    您可以在《Amazon SageMaker Unified Studio 使用者指南》Dockerfile 範例中找到 SageMaker Unified Studio 的 Dockerfile 範例。

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

    docker build -t ${LOCAL_IMAGE_NAME} .

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

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

    docker run -it ${LOCAL_IMAGE_NAME}

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

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

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

將 Docker 映像檔新增至 Amazon ECR

若要將容器映像新增至 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 主控台

    • aws-region 是 Amazon SageMaker AI 網域 AWS 區域 的 。您可以在任何 AWS 主控台頁面的右上角找到此項目。

    • ecr-repository-name 是您在這裡定義的 Amazon Elastic Container Registry 儲存庫名稱。若要檢視 Amazon ECR 儲存庫,請參閱 Amazon ECR 主控台

  2. 登入 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

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

    docker tag \ ${LOCAL_IMAGE_NAME} \ ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
  4. 使用 AWS CLI命令在 Amazon ECR 儲存庫中建立儲存庫。若要使用 Amazon ECR 主控台建立儲存庫,請參閱建立 Amazon ECR 私有儲存庫來存放映像

    aws ecr create-repository \ --region ${REGION} \ --repository-name ${ECR_REPO_NAME}
  5. 將映像推送至您的 Amazon ECR 儲存庫。您也可以標記 Docker 映像檔。

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

一旦映像成功新增至 Amazon ECR 儲存庫,您就可以在 Amazon ECR 主控台中檢視該映像。