Docker 컨테이너로 배포 시, 외부통신이 느릴 경우 해결 방법
목차
1. 문제점
2. 원인 분석 및 결과
3. 문제 해결
4. Google 공용 DNS
1. 문제점
-
개발서버에 배포 시, 로그인 처리가 느린 현상
- 로그인 시 사용하는 URL: http://login.microsoft.com
2. 원인 분석 및 결과
- ping 명령어를 사용해서 로컬에서 먼저 http://login.microsoft.com를 확인함
-
docker 컨테이너 내부에 들어가서 ping을 날려봄
# docker 컨테이너 접속 $docker exec -it <컨테이너_id> /bin/bash # ping 설치 $apt update $apt install iputils-ping # ping 날리기 $ping login.microsoft.com - 분석 결과, 도커 컨테이너 내부에서 핑이 느리게 옴
3. 문제 해결
-
docker run 명령어에 dns 옵션 추가
# --dns 플래그를 docker run에 적용 - docker run -d --dns 8.8.8.8 --name $APP_NAME --restart=always -p $ARG_EXPOSE_PORT:$ARG_EXPOSE_PORT -e PORT=$ARG_EXPOSE_PORT $IMAGE_NAME -
docker로 배포 후 /etc/resolv.conf 파일 확인
-
수정 전

-
수정 후

-
수정하고 확인 해보니 문제가 해결됨
4. Google 공용 DNS
정의
DNS 8.8.8.8은 구글에서 제공하는 공용 DNS 서버 주소로, 누구나 무료로 사용할 수 있는 DNS 서비스
장점
-
빠른 응답 속도
구글의 DNS 서버는 전 세계에 분산되어 있어 빠른 속도로 도메인 이름을 IP 주소로 변환할 수 있습니다. 특히, 일부 ISP가 제공하는 기본 DNS보다 응답 속도가 빠를 수 있음 -
안정성
구글은 대규모 서버 네트워크와 고성능 인프라를 운영하기 때문에, 공용 DNS 서버의 안정성과 가용성이 매우 높습니다. 서버 다운타임이 거의 없어 연결 문제가 줄어들 가능성이 큼 -
보안 강화
구글 DNS는 DNSSEC를 지원하여 보안을 강화합니다. 이는 악의적인 DNS 스푸핑 공격을 방지하는 데 도움을 주며, 사용자가 안전하게 웹사이트에 접속할 수 있음 -
필터링 없는 접근
특정 지역의 ISP에서는 일부 웹사이트를 필터링하거나 제한할 수 있지만, 구글 DNS를 사용하면 이러한 제한을 우회할 가능성이 높아질 수 있음 -
투명성
구글의 DNS는 로깅 정책이 명확하며, 많은 사용자들이 이미 사용하고 있어 신뢰할 수 있는 서비스 -
개선된 연결성
특정 ISP의 DNS가 느리거나 불안정한 경우, 구글의 DNS로 전환하면 더 나은 웹사이트 연결성을 경험할 수 있음
