Amazon Elastic Container Service (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) のプライベートリポジトリからイメージをプルするときに発生します。
このエラーメッセージが表示されていない場合は、問題またはエラーメッセージに対して次の解決策のいずれかを選択してください。
- アプリケーションの問題またはリソースの制約により、コンテナが終了する。この問題を解決するには、「 コンテナの終了中に停止または開始に失敗する Amazon ECS タスクをトラブルシューティングする方法を教えてください」を参照してください。
- Application Load Balancer のヘルスチェックが不合格となる。この問題を解決するには、「Amazon EC2 起動タイプを使用する Amazon ECS タスクで、Application Load Balancer のヘルスチェックに合格する方法を教えてください」を参照してください。
- Docker がコンテナイメージをプルできない。この問題の解決方法については、「Amazon ECS の CannotPullContainer タスクエラー」を参照してください。
- 次の例に類似したエラーメッセージが表示されます: "[AWS service] was unable to place a task because no container instance met all of its requirements"この問題の解決方法については、「Amazon ECS で発生する エラーの解決方法を教えてください"[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"この問題の解決方法については、「Amazon ECS で発生する エラーの解決方法を教えてください"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](https://repost.aws/ja/knowledge-center/ecs-container-instance-agent-error)the closest matching container-instance container-instance-id encountered error 'AGENT'"」がAmazon ECS 内のサービスで発生する場合の解決方法を教えてください". To resolve this issue, see [How do I resolve "」を参照してください。
注: Amazon ECS サービスの問題をトラブルシューティングするには、サービスイベントログの診断情報を確認してください。
解決策
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
イメージが存在しないというエラーを解決するには、次の手順を実行します。
- イメージが Amazon ECS タスク定義で宣言されていることを確認します。詳細については、「イメージ」を参照してください。
- Docker イメージが Amazon ECR リポジトリに存在することを確認します。詳細については、「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)[*]'
注: repository-name と region の値は、お使いのものに置き換えます。
- タスク定義で Amazon ECR イメージを指定します。イメージの完全な URI を使用します。詳細については、「Amazon ECR イメージとタスク定義 IAM ロール」を参照してください。
重要: 画像の URI の先頭または末尾にスペースがないことを確認してください。
関連情報
Amazon ECR のプライベートイメージ