본문 바로가기
백엔드 개발

도커 컨테이너의 네트워크 통신

by browoo97 2022. 10. 14.

 

1. 컨테이너와 월드 와이드 웹의 통신

2. 컨테이너와 호스트 머신의 통신 - 도커 컨테이너와 로컬 호스트머신이 통신하는 특별한 주소 : host.docker.internal -> 도커는 특수 도메인을 호스트 머신의 IP주로 변환하여 인식한다.

 

3. 컨테이너와 컨테이너의 통신 -

docker container inspect {container name} -> IPAddress -> 컨테이너 IP 주소 확인 -> 연결

하지만 직접 컨테이너의 IP를 확인하여 주소를 적는 일은 번거롭다. 때문에 도커는 컨테이너 네트워크라는 걸 만들어 위의 번거로운 문제를 해결하게 해준다.

- 네트워크 생성

docker network create {custom network name}

 

- 네트워크에 연결하여 container 생성

docker run  --name {image custom name} --network {network name} {image name}

 

동일한 네트워크를 사용하는 컨테이너일 경우 컨테이너 이름을 작성하여 통신할 수 있다. - 도커는 컨테이너를 이름을 통해 해당 컨테이너의 IP를 찾아 자동변환한다.

ex) 'mongodb://{container name}:27017/~~'

 

- 컨테이너는 한가지 역할에만 담당하는 것을 권장한다. 

ex) 애플리케이션 API 컨테이너, 데이터베이스 컨테이너로 분리

 

- 컨터이너에 호출 되는 컨테이너의 경우 포트를 게시할 필요가 없다. -p 옵션의 경우 로컬 호스트 머신이나, 컨테이너 네트워크 외부에서 해당 컨테이너에 연결할 경우 필요하기 때문이다. 하지만 컨테이너 간의 통신은 컨테이너 네트워크 내부에서 모든 컨테이너가 서로 자유롭게 통신할 수 있기 때문에 mongodb 컨테이너 생성 시 -p 옵션을 통해 포트 게시를 하지 않았다.

 

'백엔드 개발' 카테고리의 다른 글

Docker compose  (0) 2022.11.18
Docker DB 컨테이너  (0) 2022.10.23
Docker Bind Mounts  (0) 2022.10.11
Docker Volume  (0) 2022.10.06
이미지 vs 컨테이너  (0) 2022.09.22

댓글