Docker 컨테이너 내부에서 호스트 시스템을 "localhost" 또는 "127.0.0.1"로는 직접 접근할 수 없습니다. 그러나 컨테이너에서 호스트 시스템을 접근하는 데는 몇 가지 방법이 있습니다:

  1. 호스트의 특별한 IP 주소 사용:
    Docker는 호스트 시스템을 가리키는 특별한 IP 주소를 컨테이너에 제공합니다. 리눅스에서는 이 IP 주소가 일반적으로 172.17.0.1이지만, 이는 네트워크 구성에 따라 다를 수 있습니다. 이 IP 주소를 사용하여 호스트 시스템에 연결할 수 있습니다.
  2. host network mode 사용:
    Docker 컨테이너를 host 네트워크 모드로 실행하면, 컨테이너는 호스트의 네트워크 네임스페이스를 사용합니다. 이렇게 하면 "localhost" 또는 "127.0.0.1"을 사용하여 호스트의 서비스에 접근할 수 있습니다.

    예시:

    docker run --network=host <image_name>

    하지만 이 방법은 컨테이너와 호스트 간의 네트워크 격리가 사라져 보안 문제가 발생할 수 있으므로 주의가 필요합니다.

  3. Docker의 bridge 네트워크 사용:
    Docker의 기본 bridge 네트워크를 사용할 때 호스트는 172.17.0.1의 IP 주소로 표현될 수 있습니다. 하지만 이 IP 주소는 환경마다 다를 수 있으므로 확인 후 사용해야 합니다.
  4. Mac 또는 Windows 사용 시:
    Docker Desktop for Mac 또는 Windows를 사용하는 경우, host.docker.internal 호스트네임을 사용하여 호스트 시스템에 접근할 수 있습니다.

무엇을 하려고 하는지, 어떤 환경에서 작업하고 있는지에 따라 가장 적합한 방법을 선택해야 합니다.

+ Recent posts