Docker 컨테이너에서 Host의 localhost 연결
Docker 컨테이너 내부에서 호스트 시스템의 localhost에 서비스를 연결 방법. host.docker.internal
개요
Docker 컨테이너 내부에서 Host로 접근하는 방법에 대해서 소개한다.
연결 방법
Mac/Windows 환경 도커
Mac이나 Windows의 경우에는 기본적으로 DNS 이름 host.docker.internal
으로 컨테이너 내부에서 Host에 접근이 가능하다.
컨테이너에서 호스트의 서비스로 연결하고 싶다.
호스트에 변경되는 IP 주소가 있다(또는 네트워크 액세스 권한이 없는 경우 없음). 호스트에서 사용하는 내부 IP 주소로 확인되는 특수 DNS 이름 host.docker.internal
에 연결하는 것이 좋다. 이는 개발용이며 Docker Desktop 외부의 프로덕션 환경에서는 작동하지 않는다.
gateway.docker.internal
을 사용하여 게이트웨이에 연결할 수도 있다.
출처: Docker 공식 문서
리눅스 환경 도커
Linux용 Docker에서 host.docker.internal
사용하려면, --add-host host.docker.internal:host-gateway
를 추가 해야 한다.
예를 들어, 아래와 같다.
$ docker run \
-it \
--rm \
--add-host=host.docker.internal:host-gateway \
alpine \
cat /etc/hosts
참조
최종 수정 : 2023-01-07