블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»



도커는 컨테이너로 기동하기 때문에 네트워크를 통해서 도커의 IP를 접근하거나 또는 도커에서 호스트의 IP를 접근하기위해서는 별도의 설정이 필요하다.


시간을 많이 소요한 부분이 MAC 환경이 다름을 인지 못했기 때문인데, 도커에는 네트워크 모드중에 host 모드(docker run --net="host" )로 설정하고 기동하면 된다.라는 것이 있다. 이 경우 도커의 네트워킹이 host 머신의 네트워크를 그대로 사용하기 때문에, host의 ip와 port가 그대로 도커와 연결이 되지만, 이 host 모드는 MAC에서는 작동을 하지 않는다. 


MAC의 경우에는 이 Host 모드가 동작하지 않는다.

다음과 같은 시나리오가 있다고 보자


 -->0.0.0.0:8087 (docker) --> 0.0.0.0:8081 (host)


호스트 머신에서 도커가 돌고 있을때, 이 도커가 8087로 Listen을 하고, 도커에서 호스트 머신의 8081 포트를 억세스 하고자 할때, 도커로 들어오는 8087 트래픽을 받기 위해서는 docker run -p 8087:8087 식으로 정의해서, 도커의 8087 포트와 호스트 머신의 8087 포트를 맵핑해줘야 한다.


도커에서 호스트를 호출할때는 MAC의 경우에는 host.docker.internal 주소로 호출하면 된다. https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds