본문 바로가기
Docker/Udemy Docker & Kubernetes

섹션4. 네트워킹:(교차) 컨테이너 통신

by YoonJong 2023. 11. 28.
728x90

컨테이너 내부에서 네트워크를 사용하는 방법
다수의 컨테이너를 연결
서로 통신하게 하는 방법

### 컨테이너 만들기 & 웹 통신하기(WWW)
- 컨테이너 내부에서 WWW 로 요청을 보내는 것은 작동한다. ( 특별한 설정 필요 없음 )

### 호스트 통신 작업을 위한 컨테이너 만들기
- 컨테이너와 로컬 MongoDB 와의 연결하는 법
- 특수 도메인을 이용한다. -> host.docker.internal 

'mongodb://localhost:27017/swfavorites' 코드에서 해당 부분을 아래와 같이 바꾼다.
'mongodb://host.docker.internal:27017/swfavorites'



### 컨테이너와 컨테이너 간의 통신: 기본 솔루션
- 모든 컨테이너는 한 가지에만 집중하도록 하는 것이 좋다
- MongoDB 컨테이너 실행

docker run -d --name mongodb mongo


- IP 주소를 이용해서 연결할 수 있다.

docker container inspect mongo -> 자세히보기
'mongodb://172.17.0.2:27017/swfavorites' -> 코드 변경 ( 다른 컨테이너와 연결 가능 )


- mongoDB IP 가 변경될때마다 수정해주어야 하는 불편함 : 이상적이지 않다.

### Docker Networks 소개: 우아한 컨테이너 간 통신
- —network 옵션을 사용해서 하나의 network 에 넣을 수 있다.
- network는 직접 만들어주어야 한다 ( docker network —help 참고 )

docker network create favorites-net

 


- 두 개의 컨테이너가 동일한 네트워크의 일부분일 경우 다른 컨테이너 이름을 입력할 수 있다.

'mongodb://mongodb:27017/swfavorites' -> mongodb 라는 컨테이너 이름
 docker run -d --name favorites --network favorites-net --rm -p 3000:3000 favorites-node


- 현재는 mongodb를 내리고 올리면 db의 데이터가 모두 지워지는데 다음 섹션에서 해결방법을 학습할 예정 -> 볼륨을 이용한다.

728x90

댓글