はじめに
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) との統合により、セキュリティも強化されます。
コメント