Docker read init-p: connection reset by peer 해결법

안녕하십니까. 

업무적으로 도커를 사용해서 컨테이너를 구축해야하게 되었습니다.


저는 현재 AWS의 ECS라는 도커 클러스터 클라우드를 사용하고 있는데요.

사용하는 도중에 화면에서 다음과 같은 에러를 확인하게 되었습니다.


에러 화면

아래의 화면은 AWS의 ECS에 올려놓은 서비스의 작업 상태 화면 입니다.
상태 사유쪽에 보면 에러가 남아있습니다. 



 CannotStartContainerError: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:319: getting the final child's pid from pipe caused \"read init-p: connection reset by peer\"": u


위는 ECS에서 작업을 실행하다가 발생한 에러 입니다. 

컨테이너에서 확인하면

AWS의 CloudWatch에는 아무것도 남아있지 않습니다.
직접 원인을 파악하기 위해서 도커 EC2 인스턴스에 ssh로 접근하여 로그를 확인하였습니다. 

docker ps 명령어로 확인하면 다음과 같습니다. Created 상태로 종료되어 있습니다.
AWS에서 Created로 종료하지는 않을것이기에 무엇인가 문제가 있습니다.
[ec2-user@ip-10-0-0-27 ~]$ sudo docker ps -a
CONTAINER ID        IMAGE                                                                  COMMAND                  CREATED              STATUS                PORTS               NAMES
0f769f5a4d3f        848413064369.dkr.ecr.us-east-2.amazonaws.com/t-crawler-slave:lastest   "sudo sh /crawler/ma…"   7 seconds ago        Created               4444/tcp            ecs-t-crawler-slave-7-t-crawler-slave-b4f3ace4c8e2e998eb01

아래와 같이 죽은 container를 직접 start로 재실행해봐도 살아나지 않습니다.

[ec2-user@ip-10-0-0-27 ~]$ sudo docker start f33e79c8d835
Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:319: getting the final child's pid from pipe caused \"read init-p: connection reset by peer\"": unknown
Error: failed to start containers: f33e79c8d835
그러나 같은 이미지를 기반으로 컨테이너를 run을 하면 에러는 발생하지 않고, 돌아가는 현상이 있긴 합니다. 따라서 이미지 자체의 에러는 아닙니다. 

에러의 원인

구글링을 해보면, Docker의 버전 차이라고 하거나, containerd.io의 버전을 변경하라는 댓글을 확인하였으나, 이문제랑은 큰 관련은 없었습니다. 여러가지 시도해보는 중 찾을 수 있었던 에러의 원인은 ECS에 넣었던 메모리 크기가 너무 적었던것이 원인이었습니다.

위의 사진과 같이 ECS에 작업 메모리를 설정하는 부분이 있습니다. 현재 저는 1024라고 작성하여 1GB를 지정하였지만, 별생각 없이 1이라고 지정하였었고, 따라서 메모리가 부족해 올라가지 않은 것 입니다. 


 

댓글

이 블로그의 인기 게시물

고려대학교 야간대학원 중간 후기

포켓몬 고 17셀 확인 포고맵 사용 방법

HTTP 오류 500.19 - Internal Server Error 에러 처리법