Docker 네트워크 문제 해결: curl (56) Recv failure 오류 없애기
✔️ Docker에서 curl을 실행할 때 '(56) Recv failure' 오류가 발생했다면?
✔️ 네트워크 연결이 차단되거나 포트 매핑 문제가 원인일 수 있습니다.
✔️ 이 가이드에서는 주요 원인을 분석하고, 단계별 해결 방법을 제공합니다.
🚀 Docker 네트워크 문제를 해결하고, curl 요청이 정상적으로 작동하도록 설정해 보세요!
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
'devOmnivore' 카테고리의 다른 글
서버 가상화의 선택: VMware, KVM, Hyper-V 비교 분석 (0) | 2025.04.04 |
---|---|
서버리스 아키텍처: 비용 절감과 혁신을 동시에 잡는 새로운 개발 패러다임 (1) | 2025.04.01 |
개발자 포트폴리오 만드는 법: 성공적인 경력을 위한 첫걸음 (0) | 2025.03.31 |
스마트 컨트랙트 보안 감사(Smart Contract Audit) 서비스 추천 (0) | 2025.03.30 |
스스로 진화하는 AI, 에이전틱 AI가 만드는 놀라운 미래 혁신! (0) | 2025.03.29 |