도커는 컨테이너로 기동하기 때문에 네트워크를 통해서 도커의 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
'클라우드 컴퓨팅 & NoSQL > 도커 & 쿠버네티스' 카테고리의 다른 글
쿠버네티스 #3- 개념이해 (2/2) 컨트롤러 (0) | 2018.05.30 |
---|---|
쿠버네티스 #2 - 개념 이해 (1/2) (20) | 2018.05.21 |
쿠버네티스 #1 - 소개 (12) | 2018.05.19 |
도커에서 컨테이너로 로그인 하기 (0) | 2018.04.13 |
Docker 소개 (7) | 2013.10.22 |