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 공식 문서](https://docs.docker.com/desktop/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host)
리눅스 환경 도커
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