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 image tag」(Docker イメージのタグ) を参照してください。

ローカル Dockerfile を作成してコンテナイメージを構築する

以下の手順に従って、必要なソフトウェアと依存関係を使用して Dockerfile を作成します。

Dockerfile を作成するには
  1. まず、以下の AWS CLI コマンドの変数を設定します。

    LOCAL_IMAGE_NAME=local-image-name

    local-image-name は、ここで定義するローカルデバイス上のコンテナイメージの名前です。

  2. カスタムイメージの仕様」に記載の仕様を満たす、Dockerfile という名前のテキストベースのドキュメントを作成します。

    サポートされているアプリケーションの Dockerfile 例については、「Dockerfile サンプル」を参照してください。

    注記

    独自のイメージを SageMaker Unified Studio に取り込む (BYOI) 場合は、「Amazon SageMaker Unified Studio ユーザーガイド」の「Dockerfile 仕様」に従う必要があります。

    SageMaker Unified Studio の Dockerfile の例については、「Amazon SageMaker Unified Studio ユーザーガイド」の「Dockerfile の例」を参照してください。

  3. Dockerfile と同じディレクトリで、以下のコマンドを使用して Docker イメージを構築します。ピリオド (.) は、Dockerfile が build コマンドのコンテキスト内にあることを指定します。

    docker build -t ${LOCAL_IMAGE_NAME} .

    build が完了したら、以下のコマンドを使用して、コンテナイメージ情報を一覧表示できます。

    docker images
  4. (オプション) 以下のコマンドを使用すると、イメージをテストできます。

    docker run -it ${LOCAL_IMAGE_NAME}

    出力では、サーバーが http://127.0.0.1:8888/... などの URL で実行されていることが示されます。この URL をブラウザにコピーして、イメージをテストできます。

    これが機能しない場合は、docker run コマンドに -p port:port を含める必要がある場合があります。このオプションは、コンテナで公開されているポートをホストシステム上のポートにマッピングします。Docker の実行の詳細については、Docker ドキュメントの「Running containers」(コンテナ) を参照してください。

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

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 ユーザーガイド」の「Installing the 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 コンソールで表示できます。