DockerイメージをECR(Elastic Container Registry)にプッシュする方法

はじめに

AWS Elastic Container Registry (ECR) は、Docker コンテナイメージを保存、管理、デプロイするためのフルマネージドコンテナレジストリサービスです。このガイドでは、ローカルで作成した Docker イメージを ECR にプッシュする手順を詳しく説明します。

前提条件

  • AWS アカウント
  • AWS CLI のインストールと設定
  • Docker のインストール
  • プッシュするための Docker イメージ

手順

1. AWS CLI の設定

まず、AWS CLI が正しく設定されていることを確認します。以下のコマンドで AWS の認証情報を設定します。

aws configure

プロンプトが表示されたら、AWS アクセスキー ID、シークレットアクセスキー、デフォルトリージョン、出力形式を入力します。

2. ECR リポジトリの作成

Docker イメージを保存するための ECR リポジトリを作成します。

aws ecr create-repository --repository-name my-repository --region us-east-1

my-repository は希望のリポジトリ名に、us-east-1 は使用したいリージョンに置き換えてください。

3. ECR へのログイン

AWS ECR にログインするために、以下のコマンドを実行します。

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin AWS_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com

AWS_ACCOUNT_ID は実際の AWS アカウント ID に置き換えてください。

4. Docker イメージへのタグ付け

ECR にプッシュする前に、Docker イメージに適切なタグを付ける必要があります。

docker tag my-image:latest AWS_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/my-repository:latest

my-image はローカルのイメージ名、my-repository は先ほど作成した ECR リポジトリ名に置き換えてください。

5. イメージのプッシュ

タグ付けされたイメージを ECR にプッシュします。

docker push AWS_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/my-repository:latest

6. プッシュの確認

以下のコマンドを実行して、イメージが正常にプッシュされたことを確認できます。

aws ecr describe-images --repository-name my-repository --region us-east-1

トラブルシューティング

認証エラー

次のようなエラーが発生した場合:

Error response from daemon: unauthorized: authentication required

ECR へのログインが正しく行われていない可能性があります。ログインコマンドを再実行してください。

プッシュ失敗

プッシュ中にエラーが発生した場合は、以下を確認してください:

  • インターネット接続
  • AWS 認証情報の有効性
  • ECR リポジトリの存在
  • イメージのタグが正しいこと

まとめ

このガイドでは、Docker イメージを AWS ECR にプッシュするための基本的な手順を説明しました。これらの手順に従うことで、コンテナイメージを安全に保存し、AWS のサービス(ECS や EKS など)でデプロイできるようになります。

ECR を使用することで、コンテナの管理が容易になり、チーム間でのイメージの共有がスムーズになります。また、AWS の Identity and Access Management (IAM) との統合により、セキュリティも強化されます。

参考リソース

コメント

タイトルとURLをコピーしました