Amazon ECS クラスターでタスクの起動に失敗する場合の「Image is exist」エラーを解決する方法を教えてください。
最終更新日: 2022 年 7 月 13 日
Amazon Elastic Container Service (Amazon ECS) サービスが、Amazon ECS クラスターでタスクの起動に失敗します。その後に、次のようなエラーが表示されます。「CannotPullContainerError: Error response from daemon: manifest for 1234567890.dkr.ecr.us-east-1.amazonaws.com/test:curlnginx1234 not found.」 このエラーの解決方法を教えてください。
簡単な説明
このエラーを解決するには、Amazon Elastic Container Registry (Amazon ECR) リポジトリからイメージをプルします。
上記のエラーメッセージが表示されない場合は、以下の問題またはエラーのいずれかに基づいて解決方法を選択してください。
- アプリケーションの問題またはリソースの制約により、コンテナを終了しようとしている。
- Application Load Balancer のヘルスチェックに失敗している。
- Docker がコンテナイメージをプルできない。
- [AWS service] was unable to place a task because no container instance met all of its requirements.
- [AWS service] was unable to place a task because no container instance met all of its requirements.The closest matching container-instance container-instance-id has insufficient CPU units available.
- [AWS service] was unable to place a task because no container instance met all of its requirements.The closest matching container-instance container-instance-id encountered error "AGENT".
注: Amazon ECS サービスの問題のトラブルシューティングを行うには、サービスイベントログで診断情報を確認してください。
解決方法
1. イメージが Amazon ECS タスク定義で宣言されていることを確認します。
2. Docker イメージが Amazon ECR リポジトリに存在することを確認します。
注: リポジトリ情報を表示するには、Amazon ECR コンソールを使用するか、以下のコマンドを実行します。
ECR リポジトリにイメージが存在することを確認するには、次の list-images コマンドを実行します。
aws ecr list-images --repository-name "hello-world" --region us-east-1
ECR リポジトリ内のイメージをフィルタリングするには、次の describe-images コマンドを実行します。
aws ecr describe-images --repository-name "hello-world" --region us-east-1 --query 'sort_by(imageDetails,& imagePushedAt)[*]'
注: 必ず ECR リポジトリと AWS リージョンの名前を使って、コマンドを更新してください。
3. タスク定義で Amazon ECR イメージを指定するときは、イメージの完全な URI を使用してください。
重要: イメージの URI に先頭または末尾の文字スペースがないことを確認してください。