スキップしてコンテンツを表示

Amazon ECS タスクが古いコンテナイメージを使用する原因を教えてください。

所要時間1分
0

サービスで Amazon Elastic Container Service (Amazon ECS) タスクを開始した際、過去のコンテナイメージが使用されます。また、古いコンテナイメージを削除してもタスクが開始されず、"CannotPullContainer" エラーが発生します。

簡単な説明

コンテナイメージをサービスにデプロイすると、コンテナイメージタグがコンテナイメージダイジェストに解決されます。ダイジェストにはイメージに関する信頼されたメタデータが含まれているため、コンテナイメージへの変更は、コンテナイメージを再度デプロイするまで反映されません。コンテナイメージをサービスに再デプロイすると、ダイジェストが更新されます。

詳細については、「コンテナイメージの解決」および「Amazon ECS におけるソフトウェアバージョンの一貫性に関する発表」を参照してください。

解決策

ECS サービスを更新する

イメージダイジェストを更新するには、Amazon ECS コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して新しいデプロイを適用します。

Amazon ECS コンソール

Amazon ECS コンソールを使用する場合は、「コンソールを使用して Amazon ECS サービスを更新する」を参照してください。

AWS CLI

注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

update-service コマンドを実行します。

aws ecs update-service --service SERVICE_NAME --cluster CLUSTER_NAME --force-new-deployment

注: お使いのものでそれぞれ、SERVICE_NAME をサービス名に、CLUSTER_NAME をクラスター名に置き換えます。

特定のイメージを常に使用するには、タスク定義でイメージダイジェストのディレクトリを指定します。

"CannotPullContainer" エラーを解決する

古いコンテナイメージを削除した後に CannotPullContainer エラーが発生する場合は、コンテナイメージを再デプロイしてダイジェストを更新します。

特定のタグが付いた最新のコンテナイメージを使用するには、サービスを更新してイメージダイジェストを再度解決します。

注: CODE_DEPLOY または EXTERNAL デプロイコントローラーを使用するサービスでは、コンテナイメージタグは解決されません。

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ