도커는 가상 네트워크를 만들어서, 내부에서 동작하는 컨테이너들 간에는 할당된 IP 혹은 컨테이너 이름으로 통신을 할 수 있다. 그런데, 만약에 컨테이너에서 도커 호스트에 있는 서버로 접근해야 할 상황이 있다면 어떻게 해야 할 것인가?

Networking features in Docker Desktop for Windows 문서를 살펴보면 I want to connect from a container to a service on the host 라는 제목의 섹션에서 그 답을 찾을 수 있다. 바로 host.docker.internal 으로 접근을 하면 된다는 결론을 얻을 수 있다. 즉, 컨테이너에서 도커 호스트의 서버로 접근하고자 할 때는 host.docker.internal 으로 접속을 요청하면 된다는 것이다.

도커 호스트에 서버로 서비스를 할 때, 외부에서의 접근을 막고, 도커 컨테이너의 요청에 대해서 처리하고자 한다면 어떤 IP로 바인딩해야 할 것인가. 의외로 쉬운 방법을 찾을 수 있었다. 127.0.0.1로 바인딩을 시키면 된다. 이와 관련된 문서는 찾아보진 않았는데, 작업하고 있는 서버에서 127.0.0.1로 바인딩을 했을 때, 내부의 도커 컨테이너로부터 접근이 되는 것을 확인했다. 호스트와 도커 컨테이너 간의 내부 통신이 필요할 경우에는 이와 같은 방식으로 처리하면 될 것 같다.