보통 기업에서 Docker 통한 서비스를 구성할 때,
Linux 서버에 (보통은 CentOS 나 Redhat 겠지..? ) 쿠버네티스나 Docker Swarm 등을 올려서 사용하는 추세로 보인다.
다만 나의 경우 개발 환경으로 MAC Book을 통해 Docker 환경을 구축중인데,
인터넷에서 보던 구성환경과 조금 다른 부분이 있어 정리해두려고 한다.
우선 Docker의 네트워크 환경의 경우
docker network ls 명령어를 통해서도 볼 수 있는데,
기본적으로 bridge, host, container, none 으로 구성되어 있다. (--link 옵션 통한 컨테이너 끼리의 통신방법도 있다.)
자세한건 아래 블로그 통해 확인하면 될 것 같다.
https://bluese05.tistory.com/15?category=559611
다만 MAC PC docker0 네트워크 인터페이스가 존재하지 않는다.
따라서 Bridge 게이트웨이로의 Ping 명령어나 Bridge로 구성된 네트워크 환경에서
컨테이너로 통신이 Routing이 되지 않는다.
( 즉, Bridge환경에서 Host -> 컨테이너 통신이 되지 않는다. )
이럴 경우 docker run 명령어를 통해 컨테이너를 실행할 때, -p 옵션을 주어 host의 port와 컨테이너의 port를 연결해주는 방법밖에 없어보인다.
또 컨테이너 -> Host 통신이 필요한 경우,
Docker 특별한 DNS 이름을 통해 통신할 수 있다.
host.docker.internal
(게이트웨이의 경우, gateway.docker.internal 이다.)
몇가지 더 자세한 내용은 아래 사이트 통해 확인이 가능하다.
https://docs.docker.com/docker-for-mac/networking/