

# Amazon ECS에서 CannotPullContainer 작업 오류
<a name="task_cannot_pull_image"></a>

다음 오류는 Amazon ECS가 지정된 컨테이너 이미지를 검색할 수 없어 작업을 시작하지 못했음을 나타냅니다.

**참고**  
1.4 Fargate 플랫폼 버전은 긴 오류 메시지를 자릅니다.

AWS Management Console을 사용하여 중지된 작업에서 오류 메시지를 확인하려면 [Amazon ECS 중지된 작업 오류 보기](stopped-task-errors.md) 섹션을 참조하세요.

**작은 정보**  
[Amazon ECS MCP 서버](ecs-mcp-introduction.md)를 AI 어시스턴트와 함께 사용하여 자연어로 이미지 풀 오류를 조사할 수 있습니다.

**Topics**
+ [The task can’t pull the image. Check that the role has the permissions to pull images from the registry.](#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회 재시도됨: 참조를 확인하지 못함](#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. Check that the role has the permissions to pull images from the registry.
<a name="pull-request-image-not-found"></a>

이 오류는 권한 문제 때문에 작업이 작업 정의에 지정된 이미지를 가져올 수 없음을 나타냅니다.

이 문제를 해결하려면:

1. *Rrepository*에 이미지가 있는지 확인합니다. 이미지 보기에 대한 자세한 내용은 *Amazon Elastic Container Registry 사용 설명서*의 [Viewing image details in 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에 연결할 수 없음을 나타냅니다. *repository 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회 재시도됨: 참조를 확인하지 못함
<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>

이 오류는 인터넷 경로가 존재하지 않아 연결 제한 시간이 초과되었음을 나타냅니다.

다음과 같은 방법으로 이 문제를 해결할 수 있습니다.
+ 퍼블릭 서브넷에 있는 작업의 경우 태스크를 시작할 때 **퍼블릭 IP 자동 할당(Auto-assign public IP)**을 **활성화됨(ENABLED)**으로 지정합니다. 자세한 내용은 [애플리케이션을 Amazon ECS 태스크로 실행](standalone-task-create.md) 섹션을 참조하세요.
+ 프라이빗 서브넷에 있는 작업의 경우 태스크를 시작할 때 **퍼블릭 IP 자동 할당(Auto-assign public 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
...
```

일부 경우에 실행 중인 컨테이너로 루트 볼륨을 채울 수 있습니다. 컨테이너에서 기본 `json-file` 로그 드라이브를 `max-size` 제한 없이 사용하는 경우, 로그 파일이 스페이스의 대부분을 사용하는 것일 수 있습니다. `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 속도 제한에 대한 자세한 내용은 [Docker Hub 속도 제한 이해](https://www.docker.com/increase-rate-limits) 섹션을 참조하세요.

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>

이 오류는 인터넷 경로가 존재하지 않아 연결 제한 시간이 초과되었음을 나타냅니다.

다음과 같은 방법으로 이 문제를 해결할 수 있습니다.
+ 퍼블릭 서브넷에 있는 작업의 경우 태스크를 시작할 때 **퍼블릭 IP 자동 할당(Auto-assign public IP)**을 **활성화됨(ENABLED)**으로 지정합니다. 자세한 내용은 [애플리케이션을 Amazon ECS 태스크로 실행](standalone-task-create.md) 섹션을 참조하세요.
+ 프라이빗 서브넷에 있는 작업의 경우 태스크를 시작할 때 **퍼블릭 IP 자동 할당(Auto-assign public 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>

이 오류는 속도 제한에 도달했거나 네트워크 오류가 있음을 나타냅니다.

이 문제를 해결하려면 [How can I resolve the "CannotPullContainerError" error in my Amazon ECS EC2 Launch Type Task](https://repost.aws/knowledge-center/ecs-pull-container-error)를 참조하세요.

## 컨텍스트 취소됨
<a name="container-pull-context-canceled"></a>

이 오류는 컨텍스트가 취소되었음을 나타냅니다.

이 오류의 일반적인 원인은 작업에서 사용 중인 VPC에 Amazon ECR에서 컨테이너 이미지를 가져오기 위한 경로가 없기 때문입니다.