Docker

도커 네트워크

쿠와와 2020. 12. 30. 15:38

 

docker0 브리지는 각 veth 인터페이스와 바인딩돼 호스트 eth0 인터페이스와 이어줌 

 

바인딩 되었는지 확인하는 명령어

brctl show docker0 

 

도커가 제공하는 대표적인 네트워크 드라이버

- bridge

- host

- none

- container

- overlay

 

네트워크 목록 확인 

docker network ls

자세한 정보

docker network inspect

 

bridge 네트워크

bridge 네트워크는 docker0 이 아닌 사용자 정의 브리지를 새로 생성해 각 컨테이너에 연결하는 네트워크 구조

 

브릿지 생성 

docker network create --driver bridge mybridge

docker run -i -t --name my_container --net mybridge ubuntu:18.04

 

이렇게 만든 브릿지 네트워크

docker network disconnect, connect 를 통해 유동적으로 붙이고 뗄 수 있다. 

 

네트워크 커스텀 가능

docker network create --driver=bridge

--subnet=[ IP ]

-- ip-range=[ IP ]

--gateway=[ IP ]

my_custom_network

 

그렇다면 호스트 그대로 사용하고 싶을 땐?

 -> 이때는 그냥 --net host 사용 

docker run -i -t --name my_container

--net host

ubuntu:14.04

 

--net-alias

특정 호스트 이름으로 컨테이너 여러 개에 접근할 수 있다. 

apt-get install dnsutils

이 후 dig 명령어를 사용해서 연결상태를 확인 할 수 있다. 

 

None 네트워크

말 그래도 아무런 네트워크를 쓰지 않는다.

docker run -i -t --name network_none --net none ubuntu:14.04

eth0 이 없어진 것을 확인 할 수 있다.

 

컨테이너 네크워크

docker run -i -t -d --name network_cont1 ubuntu:14:04

docker run -i -t -d --name network_cont2 --net container:network_cont1 ubuntu:14.04

위와 같이 실행하면 cont2는 cont1 과 네트워크 관련된 사항은 모두 동일하게 설정된다. 

 

-i -t -d = 컨테이너 내부에서 shell을 실행하지만 내부로 들어가지 않으며 컨테이너도 종료되지 않음 

 

MacVLAN 네트워크 

호스트의 네트워ㅡ 인터페이스 카드가 가상화해 물리 네트워크 환경을 컨테이너에게 동일하게 게공한다. 

즉 가상 MAC 주소를 가지며 해당 네트워크에 연결된 다른 장치와의 통신이 가능해진다. 

네트워크 생성

docker network create -d macvlan --subvet=192.168.0.0/24

--ip-rang=[ IP ] --gateway = [ IP ]

-o macvlan_mode=bridge -o parent=eth0 mt_macvlan

 

옵션 설명

-d : 네트워크 드라이버로 macvlan을 사용하겠다. --driver와 동일

-ip-range : macvlan을 생성하는 호스트에서 사용할 컨테이너의 IP범위를 입력

-o : 네트워크의 추가적인 옵션을 설정한다. 

 

 

 

 

 

 

 

 

출처 : 도커/쿠버네티스

사진 출처 : blog.naver.com/PostView.nhn?blogId=powerlinedd&logNo=221813858736

'Docker' 카테고리의 다른 글

Docker File  (0) 2021.01.04
Docker 이미지  (0) 2021.01.04
컨테이너 자원 할당 제한  (0) 2020.12.30
컨테이너 로깅  (0) 2020.12.30
Docker 명령어 (기본 + 볼륨)  (0) 2020.12.28