도커 컨테이너에서 도커 호스트의 서버로 접근
도커는 가상 네트워크를 만들어서, 내부에서 동작하는 컨테이너들 간에는 할당된 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
로 바인딩을 했을 때, 내부의 도커 컨테이너로부터 접근이 되는 것을 확인했다. 호스트와 도커 컨테이너 간의 내부 통신이 필요할 경우에는 이와 같은 방식으로 처리하면 될 것 같다.
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.