도커 컨테이너는 외부 api와 통신이 가능하다. 예를들어 컨테이너 내부에서 javascript 의 axious 를 사용하여 통신이 가능하다.
도커 컨테이너와 호스트머신의 DB 등과 같은 로컬 호스트 머신에 접근하는 통신이 필요할 경우 IP 를 localhost 가 아닌 host.docker.internal 로 입력하여야 한다.
도커 네트워크를 사용하지 않는 컨테이너와 컨테이너의 통신을 위해서는 먼저 실행중인 컨테이너의 docker container inspect [컨테이너명] 을 통해 ip 주소를 흭득하여 통신하고자 하는 주소를 흭득한 ip 를 입력하면 통신이 가능하다.
먼저 통신하고자 하는 두 컨테이너의 네트워크를 설정하여야 한다.
docker network create [네트워크 이름]
docker run -d --name [적용할 컨테이너 이름] --network [네트워크 이름][이미지 이름]
위의 명령어를 사용하여 도커 네트워크를 생성하고 생성할 컨테이너에 --network 옵션을 주어 네트워크를 적용한다.
위 과정을 거치게 되면 도커 컨테이너의 ip 주소를 하드코딩하지 않고 ip 주소를 컨테이너 이름으로 대체 가능하다.
이럴 경우 도커 컨테이너가 내부적으로 해석한다.
Docker 네트워크, 모든 컨테이너가 통신할 수 있어 컨테이너 이름 입력 시 IP 로 해석한다.