カスタムイメージを作成して Amazon ECR にプッシュする - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタムイメージを作成して Amazon ECR にプッシュする

このページでは、ローカル Dockerfile を作成し、コンテナイメージを構築し、Amazon Elastic Container Registry (Amazon ECR) に追加する方法について説明します。

注記

次の例では、タグは指定されず、タグlatestはデフォルトで適用されます。タグを指定する場合は、イメージ名の末尾:tagに を追加する必要があります。詳細については、Docker ドキュメントの「docker image tag」を参照してください。

ローカル 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 仕様に従う必要があります。

    Dockerfile SageMaker Unified Studio の例は、Amazon 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 の実行の詳細については、Docker ドキュメント「実行中のコンテナ」を参照してください。

    サーバーが動作していることを確認したら、サーバーを停止し、すべてのカーネルをシャットダウンしてから続行できます。指示は出力で確認できます。

Amazon ECR に Docker イメージを追加する

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 コンソールを使用してリポジトリを作成するには、「Creating an Amazon ECR private repository to store images」を参照してください。

    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 コンソールで表示できます。