-
[yongggg's] 서버 docker container 내의 0.0.0.0 바인딩 후, 로컬 접속 에러kubernetes & Docker 관련 2025. 1. 10. 14:54
API 및 서버 통신에 미숙한 나를 반성하며...
docker container에서 모델을 host 0.0.0.0로 바인딩 했는데, 로컬에서 접속 에러가 뜬 경우에는 다음과 같이 확인하면 될 것 같습니다.
저는 아래의 그 어떤 방법으로도 해결할 수 없었지만, 이유는 docker container를 최초에 생성할 때, port를 안 뚫어서 생긴 일이었습니다... 이것부터 확인하는 것이 좋을 것 같아서 글을 적습니다!
그리고... 사내 VPN을 신청했을 때, 서버와 사용할 port도 같이 신청하는데 이 port 번호도 몇번 대인지 check를 하셔야합니다!!
docker로 앱을 띄울 때, 꿀팁은 다음과 같습니다.
- 실제 모델 서빙 서버는 컨테이너 안의 30000번 포트에 떠있음
- 호스트 서버(skcc)의 도커에 컨테이너를 띄울때 (예를 들어)8888번 포트 -> 컨테이너의 30000포트에 연결
- 내 로컬에선 호스트 서버의 8888번 포트에 요청을 날려야 정상 동작
0. docker container에 뚫어 놓은 port 확인
docker ps -a #or docker inspect [docker name] | jq .
- 최초의 정의한 docker container의 뚫려있는 port 확인.
$\rightarrow$ port를 안 뚫었거나 사용할 포트를 안뚫었다면, container를 삭제하고 다시 만들어야 합니다. - 서버가 Docker 컨테이너나 VM 환경에서 실행 중이라면, 외부에서 해당 포트로 접근하기 위해 네트워크 설정이 추가로 필요할 수 있습니다.
1. 서버에서 포트가 열려 있는지 확인
netstat -tuln | grep 30000
- 사내 서버가 30000 포트에서 올바르게 실행되고 있는지 확인합니다.
- LISTEN 상태로 나타나지 않는다면 서버가 제대로 실행되지 않았을 가능성이 있습니다.
- 서버가 실행 중이라면 결과에 0.0.0.0:30000 또는 *:30000과 같은 출력이 나타나야 합니다.
2. 서버 방화벽 규칙 확인
- 사내 서버에 방화벽이 설정되어 외부에서 30000 포트로 접근을 차단하고 있을 가능성이 있습니다.
Ubuntu의 경우 방화벽 확인:
sudo ufw status
30000 포트 열기:
sudo ufw allow 30000
3. 로컬 PC와 사내 서버의 네트워크 연결 확인
ping {서버 IP} # not 127.0.0.1
- 사내 서버의 IP가 10.250.107.206이라면, 로컬 PC에서 해당 서버와 네트워크적으로 통신이 가능한지 확인합니다.
- 응답이 없다면 네트워크 문제가 있을 수 있습니다.
- 네트워크 담당자에게 문의하여 로컬 PC와 사내 서버 간의 통신을 허용하도록 설정해야 합니다.
4. HTTP 요청 확인
curl http://127.0.0.1:30000/v1
- 사내 서버의 HTTP API가 올바르게 동작하는지 확인합니다.
- 사내 서버에서 curl 명령을 사용해 API에 접근:
올바른 응답이 나온다면 서버가 잘 작동하고 있습니다.
- 사내 서버에서 curl 명령을 사용해 API에 접근:
5. 로컬 PC에서 사내 서버로 요청 보내기
curl http://[사내서버 IP]:[port]/v1
- 로컬 PC에서 해당 IP와 포트로 HTTP 요청을 시도해봅니다.
- 요청이 실패하면 서버의 외부 접근 설정 또는 방화벽을 확인해야 합니다.
6. 0.0.0.0 바인딩 확인
- 서버가 0.0.0.0으로 바인딩되지 않았을 가능성도 있습니다. --host 파라미터가 정확히 적용되었는지 다시 확인하고, 로그를 살펴봅니다.
명시적으로 IP 주소를 설정:
--host 0.0.0.0 #or 사내서버 IP
'kubernetes & Docker 관련' 카테고리의 다른 글
[yongggg's] Kubernetes 개념 (Docker 와의 비교) (0) 2025.02.18 [yongggg's] docker images 서버에서 로컬(서버) 옮기기 (0) 2025.02.14 [yongggg's] port 안뚫린 docker container에 ssh 연결하기 (ssh -> server -> docker container) (0) 2024.03.07 [yongggg's] Docker container를 images로 저장하기 (0) 2023.08.01 [yongggg's] 서버에 Docker/Nvidia-Docker 설치하기 (Ubuntu20.04) (1) 2022.11.24