기본적으로 컨테이너는 www에 요청을 보낼 수 있다.
도커화된 애플리케이션 내부에서 웹 API 및 웹 페이지와 통신 가능하다.
도커화된 애플리케이션 내부에서 http에 요청을 보낼 수 있다.
host.docker.internal
이 특수 도메인은 도커에 의해 인식된다.
도커 컨테이너 내부에서 알 수 있는 호스트 머신의 IP로 변환된다.
도메인이 필요한 곳, IP가 필요한 곳 모두 사용 가능하다.
특수 도메인을 이용해 도커화된 앱에서 호스트 시스템으로의 통신 가능
DB 컨테이너의 IP를 docker inspect <db container name>
명령을 이용해 확인하고 해당 IP 주소로 연결하면 컨테이너간 통신을 할 수 있다.
-app.js에서 DB연결이 필요한 부분에 DB 컨테이너의 IP 주소를 입력하면 연결이 가능하다.
하지만 DB 컨테이너의 IP 주소가 변경될 때마다 노드 앱에서 주소를 변경해야 하는 것이 번거롭다.
docker run --network <network name>
명령을 사용하면 모든 컨테이너를 하나의 동일한 네트워크에 넣을 수 있다.
모든 컨테이너가 서로 통신할 수 있는 네트워크 생성
도커에서 --network
옵션을 사용해도 볼륨과는 달리 자동으로 네트워크를 생성하지 않는다. 따라서 네트워크 컨테이너를 만들어주어야 한다.
docker network create <network name>
명령으로 도커 내부 네트워크를 생성한다.
docker run -d --name mongodb --network favorites-net mongo
docker run --name favorites --network favorites-net -d --rm -p 3000:3000 favorites-node