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 |