翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カスタムイメージを作成して Amazon ECR にプッシュする
このページでは、ローカル Dockerfile を作成し、コンテナイメージを構築して、Amazon Elastic Container Registry (Amazon ECR) に追加する方法について説明します。
注記
次の例では、タグを指定しないため、latest タグがデフォルトで適用されます。タグを指定する場合は、イメージ名の末尾に : を追加する必要があります。詳細については、Docker ドキュメントの「docker image tagtag
ローカル Dockerfile を作成してコンテナイメージを構築する
以下の手順に従って、必要なソフトウェアと依存関係を使用して Dockerfile を作成します。
Dockerfile を作成するには
-
まず、以下の AWS CLI コマンドの変数を設定します。
LOCAL_IMAGE_NAME=local-image-nameは、ここで定義するローカルデバイス上のコンテナイメージの名前です。local-image-name -
「カスタムイメージの仕様」に記載の仕様を満たす、
Dockerfileという名前のテキストベースのドキュメントを作成します。サポートされているアプリケーションの
Dockerfile例については、「Dockerfile サンプル」を参照してください。注記
独自のイメージを SageMaker Unified Studio に取り込む (BYOI) 場合は、「Amazon SageMaker Unified Studio ユーザーガイド」の「Dockerfile 仕様」に従う必要があります。
SageMaker Unified Studio の
Dockerfileの例については、「Amazon SageMaker Unified Studio ユーザーガイド」の「Dockerfile の例」を参照してください。 -
Dockerfileと同じディレクトリで、以下のコマンドを使用して Docker イメージを構築します。ピリオド (.) は、Dockerfileが build コマンドのコンテキスト内にあることを指定します。docker build -t ${LOCAL_IMAGE_NAME} .build が完了したら、以下のコマンドを使用して、コンテナイメージ情報を一覧表示できます。
docker images -
(オプション) 以下のコマンドを使用すると、イメージをテストできます。
docker run -it ${LOCAL_IMAGE_NAME}出力では、サーバーが
http://127.0.0.1:8888/...などの URL で実行されていることが示されます。この URL をブラウザにコピーして、イメージをテストできます。これが機能しない場合は、docker run コマンドに
-pを含める必要がある場合があります。このオプションは、コンテナで公開されているポートをホストシステム上のポートにマッピングします。Docker の実行の詳細については、Docker ドキュメントの「Running containersport:port」(コンテナ) を参照してください。 サーバーが動作していることを確認したら、サーバーを停止し、すべてのカーネルをシャットダウンしてから続行できます。この手順は出力で確認できます。
Docker イメージを Amazon ECR に追加する
Amazon ECR に コンテナイメージを追加するには、次の手順を実行します。
-
Amazon ECR リポジトリを作成します。
-
デフォルトのレジストリにログインします。
-
Amazon ECR リポジトリにイメージをプッシュします
注記
Amazon ECR リポジトリは、イメージをアタッチするドメイン AWS リージョン と同じ にある必要があります。
コンテナイメージを構築して Amazon ECR にプッシュするには
-
まず、以下の AWS CLI コマンドの変数を設定します。
ACCOUNT_ID=account-idREGION=aws-regionECR_REPO_NAME=ecr-repository-name-
は、使用するアカウント ID です。これは、 AWS コンソールページの右上にあります。例えば、SageMaker AI コンソールaccount-idなどに表示されます。 -
は、Amazon SageMaker AI ドメイン AWS リージョン の です。これは、 AWS コンソールページの右上にあります。aws-region -
は、ここで定義する Amazon Elastic Container Registry リポジトリの名前です。Amazon ECR リポジトリを表示するには、「Amazon ECR コンソールecr-repository-name」を参照してください。
-
-
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」を参照してください。
-
リポジトリにプッシュするには、Amazon ECR と互換性がある形式でイメージにタグを付けます。
docker tag \ ${LOCAL_IMAGE_NAME} \ ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME} -
AWS CLIコマンドを使って、Amazon ECR リポジトリを作成します。Amazon ECR コンソールを使用してリポジトリを作成するには、「イメージを保存用の Amazon ECR プライベートリポジトリの作成」を参照してください。
aws ecr create-repository \ --region ${REGION} \ --repository-name ${ECR_REPO_NAME} -
Amazon ECR リポジトリにイメージをプッシュします。Docker イメージにタグを付けることもできます。
docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
イメージが Amazon ECR リポジトリに正常に追加されると、Amazon ECR コンソール