Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Study_note

[Docker] 도커 네트워크 - Bridged Network 본문

Docker

[Docker] 도커 네트워크 - Bridged Network

Study_note 2021. 11. 21. 17:32

도커 네트워크 동작 원리

도커는 컨테이너에 내부 ip를 순차적으로 할당하며, 이 ip는 컨테이너를 재시작할 때마다 변경될 수 있다

도커 브리지 인터페이스는 각 veth 인터페이스와 바인딩되어 호스트의 eth0 인터페이스와 연결해주는 역할을 한다

 

snat 컨테이너 ip를 로컬 호스트로 바꿔줌 나갈 때 주소 변환 (포트 포워딩 같은 개념)

dnat 외부에서 들어오는 목적지인 로컬 호스트를 컨테이너 ip로 바꿔줌 들어올 때 변환 (포트 포워딩 같은 개념)

 

 

 

이미지가 nginx인 컨테이너 2개를 생성해보자

-p host-port:container-port 

docker container run -d --name w1 -p 8080:80 nginx
docker container run -d --name w2 -p 8181:80 nginx  
#구분가능하게 name은 달리해주고 포트번호는 안겹치게 만들어준다

ps -a 명령어로 제대로 생성됐는지 확인한다

도커는 컨테이너는 내부 ip를 순차적으로 할당하기 때문에 다음과 같이 ip가 할당된 것을 확인할 수 있다

# 호스트에서 각 컨테이너에 사용할 html파일을 생성후 복사해준다
echo "This is container w1" > index.html
docker container cp index.html  w1:/usr/share/nginx/html/
echo "This is container w2" > index.html
docker container cp index.html w2:/usr/share/nginx/html/

생성한 후 curl을 통해 로컬 호스트:입력한 포트번호에 결과 파일을 보면 w1, w2가 정상적으로 생성된 것을 확인할 수 있다

 

브리지 네트워크의 서브넷을 바꾸는 방법은 아래와 같다

172.20.0.0./16 인 ynbridge네트워크를 생성한다 (--driver bridge 명령어가 서브넷을 변환해줌)

 

도커에 ip를 보면 다음과 같이 생성했던 네트워크가 추가된 것을 확인할 수 있다

네트워크를 생성했으니 다음 네트워크에서 컨테이너를 생성해한 후 브릿지에서 생성한 컨테이너를 찾아보면 아래 같이 연결이 제대로 된 것을 확인할 수 있다.

 

 

 

Comments