Study_note
[Docker] 도커 네트워크 - Bridged Network 본문
도커 네트워크 동작 원리
도커는 컨테이너에 내부 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를 보면 다음과 같이 생성했던 네트워크가 추가된 것을 확인할 수 있다
네트워크를 생성했으니 다음 네트워크에서 컨테이너를 생성해한 후 브릿지에서 생성한 컨테이너를 찾아보면 아래 같이 연결이 제대로 된 것을 확인할 수 있다.
'Docker' 카테고리의 다른 글
[Docker] 도커파일 (0) | 2021.11.22 |
---|---|
[Docker] 도커 이미지 관리 명령어 ( pull, push ,commit 등 ) (0) | 2021.11.21 |
[Docker] 도커 볼륨 Named Volume (0) | 2021.11.19 |
[Docker] 기본 도커 명령어 (0) | 2021.11.19 |
[Docker] 컨테이너 기반 기술_ Overlay2 (0) | 2021.11.18 |
Comments