Docker 컨테이너 내부에서 호스트 시스템을 "localhost" 또는 "127.0.0.1"로는 직접 접근할 수 없습니다. 그러나 컨테이너에서 호스트 시스템을 접근하는 데는 몇 가지 방법이 있습니다:
- 호스트의 특별한 IP 주소 사용:
Docker는 호스트 시스템을 가리키는 특별한 IP 주소를 컨테이너에 제공합니다. 리눅스에서는 이 IP 주소가 일반적으로172.17.0.1
이지만, 이는 네트워크 구성에 따라 다를 수 있습니다. 이 IP 주소를 사용하여 호스트 시스템에 연결할 수 있습니다. - host network mode 사용:
Docker 컨테이너를host
네트워크 모드로 실행하면, 컨테이너는 호스트의 네트워크 네임스페이스를 사용합니다. 이렇게 하면 "localhost" 또는 "127.0.0.1"을 사용하여 호스트의 서비스에 접근할 수 있습니다.
예시:docker run --network=host <image_name>
하지만 이 방법은 컨테이너와 호스트 간의 네트워크 격리가 사라져 보안 문제가 발생할 수 있으므로 주의가 필요합니다. - Docker의 bridge 네트워크 사용:
Docker의 기본 bridge 네트워크를 사용할 때 호스트는172.17.0.1
의 IP 주소로 표현될 수 있습니다. 하지만 이 IP 주소는 환경마다 다를 수 있으므로 확인 후 사용해야 합니다. - Mac 또는 Windows 사용 시:
Docker Desktop for Mac 또는 Windows를 사용하는 경우,host.docker.internal
호스트네임을 사용하여 호스트 시스템에 접근할 수 있습니다.
무엇을 하려고 하는지, 어떤 환경에서 작업하고 있는지에 따라 가장 적합한 방법을 선택해야 합니다.