

# Amazon ECS での CannotPullContainer タスクエラー
<a name="task_cannot_pull_image"></a>

次のエラーは、Amazon ECS が指定されたコンテナイメージを取得できないためにタスクを開始できなかったことを示しています。

**注記**  
1.4 Fargate プラットフォームバージョンでは、長いエラーメッセージが切り捨てられます。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

**ヒント**  
[Amazon ECS MCP サーバー](ecs-mcp-introduction.md) と AI アシスタントを使用することで、イメージプルエラーの調査を自然言語で実行できます。

**Topics**
+ [The task can’t pull the image. ロールにレジストリからイメージをプルするためのアクセス許可があることを確認します。](#pull-request-image-not-found)
+ [The task cannot pull ‘*image-name*’ from the Amazon ECR repository ‘*repository URI*’. There is a connection issue between the task and Amazon ECR. Check your task network configuration.](#pull-image-io-timeout)
+ [The task can’t pull the image. Check your network configuration](#pull-request-image-not-found-network)
+ [CannotPullContainerError: プルイメージマニフェストが 5 回再試行されました: ref の解決に失敗しました](#pull-request-image-tag)
+ [API error (500): Get https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection](#request-canceled)
+ [API エラー](#pull-request-api-error)
+ [write /var/lib/docker/tmp/*GetImageBlob111111111*: no space left on device](#pull-request-write-error)
+ [ERROR: toomanyrequests: Too Many Requests or You have reached your pull rate limit.](#container-pull-too-many-requests)
+ [Error response from daemon: Get *url*: net/http: request canceled while waiting for connection](#container-pull-request-canceled-connection)
+ [ref pull has been retried 1 time(s): failed to copy: httpReaderSeeker: failed open: unexpected status code](#container-pull-failed-open)
+ [pull access denied](#container-pull-access-denied.title)
+ [pull command failed: panic: runtime error: invalid memory address or nil pointer dereference](#container-pull-runtime-error.title)
+ [error pulling image conf/error pulling image configuration](#container-pull-pulling-image.title)
+ [コンテキストがキャンセルされました](#container-pull-context-canceled)

## The task can’t pull the image. ロールにレジストリからイメージをプルするためのアクセス許可があることを確認します。
<a name="pull-request-image-not-found"></a>

このエラーは、アクセス許可の問題により、タスク定義で指定されたイメージをタスクがプルできないことを示します。

この問題を解決するには。

1. イメージが*リポジトリ*に存在することを確認してください。イメージの表示の詳細については、「*Amazon Elastic Container Registry ユーザーガイド*」の「[Amazon ECR でのイメージの詳細の表示](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-info.html)」を参照してください。

1. *role-arn* にイメージをプルするための正しいアクセス許可があることを確認します。

   ロールを更新する方法については、「*AWS Identity and Access Management ユーザーガイド*」の「[ロールに対するアクセス許可を更新する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)」を参照してください。

   タスクには次のいずれかのロールを使用します。
   + Fargate のタスクの場合、これはタスク実行ロールになります。Amazon ECR の追加のアクセス許可については、「[インターフェイスエンドポイントのアクセス許可によって Amazon ECR イメージをプルする Fargate タスクです。](task_execution_IAM_role.md#task-execution-ecr-conditionkeys)」を参照してください。
   + EC2 のタスクの場合、これはコンテナインスタンスロールになります。Amazon ECR の追加のアクセス許可については、「[Amazon ECR のアクセス許可](instance_IAM_role.md#container-instance-role-ecr)」を参照してください。

## The task cannot pull ‘*image-name*’ from the Amazon ECR repository ‘*repository URI*’. There is a connection issue between the task and Amazon ECR. Check your task network configuration.
<a name="pull-image-io-timeout"></a>

このエラーは、タスクが Amazon ECR に接続できないことを示します。*リポジトリ URI* リポジトリへの接続を確認してください。

これらの問題を検証および解決する方法の詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## The task can’t pull the image. Check your network configuration
<a name="pull-request-image-not-found-network"></a>

このエラーは、タスクが Amazon ECR に接続できないことを示します。

これらの問題を検証および解決する方法の詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## CannotPullContainerError: プルイメージマニフェストが 5 回再試行されました: ref の解決に失敗しました
<a name="pull-request-image-tag"></a>

このエラーは、タスクがイメージをプルできないことを示します。

この問題を解決する方法は以下のとおりです。
+ タスク定義で指定されたイメージがリポジトリ内のイメージと一致することを確認してください。
+ Amazon ECS はイメージバージョンの安定性を強制します。元のイメージが使用できなくなった場合、このエラーが発生します。イメージタグは、この挙動の執行プロセスの一部です。タグとして :latest を使用するタスク定義のイメージを、特定のバージョンに変更してください。詳細については、「[コンテナイメージの解決](deployment-type-ecs.md#deployment-container-image-stability)」を参照してください。

これらの問題を検証および解決する方法の詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## API error (500): Get https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection
<a name="request-canceled"></a>

このエラーは、インターネットへのルートがないため、接続がタイムアウトしたことを示します。

この問題を解決するには、以下ができます。
+ パブリックサブネットのタスクでは、タスクの起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP)を **[ENABLED]** (有効)に指定する必要があります。詳細については、「[Amazon ECS タスクとしてのアプリケーションの実行](standalone-task-create.md)」を参照してください。
+ プライベートサブネットのタスクでは、タスク起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP) を **[DISABLED]** (無効) に指定し、VPC の NAT ゲートウェイを設定してリクエストをインターネットにルートします。詳細については、*Amazon VPC ユーザーガイド* の [NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) を参照してください。

## API エラー
<a name="pull-request-api-error"></a>

このエラーは、Amazon ECR エンドポイントとの接続に問題があることを示します。

この問題を解決する方法については、サポート ウェブサイトの「[Amazon ECS の Amazon ECR エラー "CannotPullContainerError: API error" を解決するには](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-pull-container-api-error-ecr/)」を参照してください。

## write /var/lib/docker/tmp/*GetImageBlob111111111*: no space left on device
<a name="pull-request-write-error"></a>

このエラーは、ディスク容量が不足していることを示しています。

この問題を解決するには、ディスク容量を解放します。

Amazon ECS 最適化 AMI を使用している場合は、次のコマンドを使用してファイルシステムで 20 個の最大ファイルを取得できます。

```
du -Sh / | sort -rh | head -20
```

出力例:

```
5.7G    /var/lib/docker/containers/50501b5f4cbf90b406e0ca60bf4e6d4ec8f773a6c1d2b451ed8e0195418ad0d2
1.2G    /var/log/ecs
594M    /var/lib/docker/devicemapper/mnt/c8e3010e36ce4c089bf286a623699f5233097ca126ebd5a700af023a5127633d/rootfs/data/logs
...
```

場合によっては、実行中のコンテナによってルートボリュームがいっぱいになる可能性があります。コンテナが `max-size` 制限のないデフォルトの `json-file` ログドライバーを使用している場合、ログファイルが使用されているスペースの大半を占めている可能性があります。`docker ps` コマンドを使用して、上記の出力からコンテナ ID にディレクトリ名をマッピングすることによって、どのコンテナが容量を使用しているかを確認します。例えば、次のようになります。

```
CONTAINER ID   IMAGE                            COMMAND             CREATED             STATUS              PORTS                            NAMES
50501b5f4cbf   amazon/amazon-ecs-agent:latest   "/agent"            4 days ago          Up 4 days                                            ecs-agent
```

デフォルトでは、`json-file` ログドライバーを使用する場合、Docker はすべてのコンテナの標準出力 (および標準エラー) をキャプチャし、JSON 形式を使用してファイルに書き込みます。ログドライバーオプションとして `max-size` を設定できます。これにより、ログファイルの容量が大きくなりすぎるのを防ぐことができます。詳細については、Docker ドキュメントの「[JSON ファイルロギングドライバー](https://docs.docker.com/engine/logging/drivers/json-file/)」を参照してください。

このオプションの使用方法を示すコンテナ定義のスニペットを次に示します。

```
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "256m"
    }
}
```

コンテナログのディスク容量使用量が大きすぎる場合、`awslogs` ログドライバーを使用することもできます。`awslogs` ログドライバーがログを CloudWatch に送信します。これによりコンテナインスタンスのコンテナログに使用されるディスク容量が解放されます。詳細については、「[Amazon ECS ログを CloudWatch に送信する](using_awslogs.md)」を参照してください。

Docker がアクセスできるディスクサイズに更新する必要がある場合があります。

詳細については、「[CannotPullContainerError: no space left on device](https://repost.aws/questions/QUx6Ix1R1SSNisYSs1Sw8EBA/cannotpullcontainererror-no-space-left-on-device)」を参照してください。

## ERROR: toomanyrequests: Too Many Requests or You have reached your pull rate limit.
<a name="container-pull-too-many-requests"></a>

このエラーは、Docker Hub のレート制限があることを示します。

次のエラーのいずれかが表示された場合は、Docker Hub のレート制限に達している可能性があります。

Docker Hub のレート制限の詳細については、[[Understanding Docker Hub rate limiting]](https://www.docker.com/increase-rate-limits) (Docker ハブのレート制限を理解する) を参照してください。

Docker Hub のレート制限を上げ、コンテナインスタンスの Docker プルを認証する必要がある場合は、「[Private registry authentication for container instances](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth-container-instances.html)」を参照してください。

## Error response from daemon: Get *url*: net/http: request canceled while waiting for connection
<a name="container-pull-request-canceled-connection"></a>

このエラーは、インターネットへのルートがないため、接続がタイムアウトしたことを示します。

この問題を解決するには、以下ができます。
+ パブリックサブネットのタスクでは、タスクの起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP)を **[ENABLED]** (有効)に指定する必要があります。詳細については、「[Amazon ECS タスクとしてのアプリケーションの実行](standalone-task-create.md)」を参照してください。
+ プライベートサブネットのタスクでは、タスク起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP) を **[DISABLED]** (無効) に指定し、VPC の NAT ゲートウェイを設定してリクエストをインターネットにルートします。詳細については、*Amazon VPC ユーザーガイド* の [NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) を参照してください。

## ref pull has been retried 1 time(s): failed to copy: httpReaderSeeker: failed open: unexpected status code
<a name="container-pull-failed-open"></a>

このエラーは、イメージのコピー時に問題があったことを示します。

この問題を解決するには、次のいずれかの記事を確認してください。
+ Fargate タスクについては、[Fargate Amazon ECSタスクの「cannotpullcontainererror」エラーの解決方法](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-fargate-pull-container-error/)を参照してください。
+ その他のタスクについては、[Amazon ECS タスクの「cannotpullcontainererror」エラーの解決方法](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-pull-container-error/)を参照してください。

## pull access denied
<a name="container-pull-access-denied.title"></a>

このエラーは、イメージにアクセスできないことを示します。

この問題を解決するには、Amazon ECR で Docker クライアントを認証する必要がある場合があります。詳細については、「*Amazon ECR ユーザーガイド*」の「[プライベートレジストリ認証](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html)」を参照してください。

## pull command failed: panic: runtime error: invalid memory address or nil pointer dereference
<a name="container-pull-runtime-error.title"></a>

このエラーは、メモリアドレスが無効であるか、ポインターデリファレンスが nil であるため、イメージにアクセスできないことを示しています。

この問題を解決するには。
+ Amazon S3 に到達するためのセキュリティグループのルールがあることを確認してください。
+ ゲートウェイエンドポイントを使用するときは、エンドポイントにアクセスするためのルートをルートテーブルに追加する必要があります。

## error pulling image conf/error pulling image configuration
<a name="container-pull-pulling-image.title"></a>

このエラーは、レート制限に達したか、ネットワークエラーが発生したことを示します。

この問題を解決するには、「[Amazon ECS EC2 起動タイプタスクで CannotPullContainerError エラーを解決する方法](https://repost.aws/knowledge-center/ecs-pull-container-error)」を参照してください。

## コンテキストがキャンセルされました
<a name="container-pull-context-canceled"></a>

このエラーは、コンテキストがキャンセルされたことを示しています。

このエラーの一般的な原因は、タスクが使用している VPC にコンテナイメージを Amazon ECR から取得するルートがないためです。