devOmnivore

Docker curl (56) Recv failure 오류 완벽 해결 가이드

devOMNIVORE 2025. 3. 31. 17:44
반응형
Docker 네트워크 문제 해결: curl (56) Recv failure 오류 없애기

✔️ Docker에서 curl을 실행할 때 '(56) Recv failure' 오류가 발생했다면?
✔️ 네트워크 연결이 차단되거나 포트 매핑 문제가 원인일 수 있습니다.
✔️ 이 가이드에서는 주요 원인을 분석하고, 단계별 해결 방법을 제공합니다.

🚀 Docker 네트워크 문제를 해결하고, curl 요청이 정상적으로 작동하도록 설정해 보세요!

 

 

 

Docker curl (56) Recv failure 오류 완벽 해결 가이드


1. Docker curl (56) Recv failure 오류란? 🤔

'(56) Recv failure' 오류는 curl이 서버로부터 데이터를 수신하는 과정에서 실패했을 때 발생합니다.

 

📌 주요 증상:
✔️ curl 요청 시 응답이 없음
✔️ 타임아웃 발생
✔️ Connection refused (연결 거부됨) 메시지 출력

 

📌 주요 원인:
포트 매핑 오류 → 컨테이너의 포트가 올바르게 호스트와 연결되지 않음
애플리케이션 리스닝 주소 문제 → 127.0.0.1만 리스닝 중이라 외부 접근이 불가능
방화벽 설정 문제 → UFW 또는 Firewalld에서 포트를 차단
Docker 네트워크 드라이버 문제 → bridge, host, none 설정 오류
컨테이너 네임스페이스 문제 → 컨테이너가 네트워크에 접근할 수 없는 상태

 

💡 결론: curl 요청이 실패하는 원인을 단계별로 확인하고 해결해보겠습니다.


2. 단계별 해결 방법 🛠️

① 포트 매핑 확인 🔍

🚀 해결 방법:

 

📌 컨테이너의 포트 매핑을 확인하세요.

docker ps

 

📌 출력 예시:

CONTAINER ID   IMAGE      COMMAND       PORTS                    NAMES
3e6c5a4b21a9   my-image   "/start.sh"   0.0.0.0:8080->80/tcp     my-container

 

👉 8080:80 포트가 제대로 매핑되었는지 확인하세요.

 

📌 포트가 올바르게 매핑되지 않았다면?
컨테이너 실행 시 올바른 포트 매핑 옵션을 추가하세요.

docker run -d -p 8080:80 my-image

 

📌 내부 IP 확인 (컨테이너 내부에서 실행할 경우)

docker exec -it my-container hostname -I

② 애플리케이션 리스닝 주소 확인 📡

📌 애플리케이션이 localhost(127.0.0.1)로만 리스닝 중이라면 외부에서 접근할 수 없습니다.

🚀 해결 방법:
컨테이너 내부에서 netstat 또는 ss 명령어를 실행하여 리스닝 주소를 확인하세요.

docker exec -it my-container netstat -tuln

 

📌 출력 예시 (잘못된 설정)

Proto Recv-Q Send-Q Local Address       Foreign Address    State  
tcp   0      0      127.0.0.1:80        0.0.0.0:*          LISTEN

 

📌 해결 방법:
애플리케이션이 0.0.0.0(모든 인터페이스)에서 리스닝하도록 수정하세요.

Nginx 예시 (/etc/nginx/nginx.conf 수정 후 재시작)

server {
    listen 80;
    server_name _;
}

 

📌 애플리케이션 실행 시 0.0.0.0으로 리스닝 설정

python -m http.server 80 --bind 0.0.0.0

③ 방화벽 설정 검토 🔥

📌 UFW(우분투 방화벽)가 포트를 차단할 수 있습니다.

🚀 해결 방법:

sudo ufw status

 

📌 포트가 차단되어 있다면?

sudo ufw allow 8080

 

📌 Firewalld(레드햇 계열) 사용 시

sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

④ Docker 네트워크 드라이버 문제 해결 🌐

📌 현재 컨테이너의 네트워크 상태 확인

docker network inspect bridge

 

📌 해결 방법:

 

🚀 bridge 네트워크가 정상적으로 설정되지 않았다면?

docker network create my_bridge
docker network connect my_bridge my-container

 

📌 host 네트워크를 직접 사용하는 방법

docker run --network=host -d my-image

 

📌 Docker 컨테이너 간 통신을 위한 별도 네트워크 생성

docker network create my_custom_network
docker run --network=my_custom_network -d my-image

⑤ 컨테이너 네임스페이스 문제 해결 🏗️

📌 컨테이너가 네트워크를 제대로 인식하는지 확인하세요.

docker exec -it my-container curl http://google.com

 

📌 내부 네트워크가 차단된 경우 해결 방법
컨테이너 내부에서 다음을 실행하세요.

echo "nameserver 8.8.8.8" > /etc/resolv.conf

 

📌 컨테이너 재시작 후 네트워크 확인

docker restart my-container

3. 결론: Docker curl (56) Recv failure 오류 해결 완벽 정리

🚀 오류 원인별 해결 방법 요약

문제 원인 해결 방법

포트 매핑 오류 docker ps → 올바른 포트 매핑 확인
리스닝 주소 문제 netstat -tuln → 0.0.0.0으로 설정
방화벽 차단 sudo ufw allow 8080 또는 firewalld 설정
Docker 네트워크 문제 docker network inspect bridge → 올바른 네트워크 사용
컨테이너 네임스페이스 문제 docker restart my-container 후 DNS 확인

💡 결론: 위 단계를 차례대로 수행하면 대부분의 Docker curl (56) Recv failure 오류를 해결할 수 있습니다.


📌 추가 도움말


✔️ 더 많은 문제 해결법은 Docker 공식 문서를 참고하세요!

🚀 이제 Docker에서 curl 요청이 정상적으로 작동하는지 확인해보세요!


 

Disclaimer: 본 블로그의 정보는 개인의 단순 참고 및 기록용으로 작성된 것이며, 개인적인 조사와 생각을 담은 내용이기에 오류가 있거나 편향된 내용이 있을 수 있습니다.

 

 

이런건 어때요?

2025년 무료 폰트 다운로드 추천 사이트 총정리 [PC/Mac, 모바일, 디자이너 필수]

 

2025년 무료 폰트 다운로드 추천 사이트 총정리 [PC/Mac, 모바일, 디자이너 필수]

무료 폰트를 다운로드할 수 있는 기기별 추천 사이트 정리디자인 작업을 하거나 문서를 작성할 때 폰트 선택은 중요한 요소입니다. 그러나 상업적 용도로 폰트를 사용하려면 라이선스를 구매해

devomni.tistory.com

 

 

반응형