bridge 드라이버를 사용하는 컨테이너는 curl 명령으로 웹 서버에 접근하려면 IP 주소를 알아야했음.
web4 컨테이너는 localhost 로 조회 할 수 있음
호스트와 네트워크 정보를 같이 공유하기 때문
null(none)
null 드라이버는 컨테이너의 네트워크 기능을 사용하지 않음
사용자 정의 네트워크 드라이버와 함께 사용
null 드라이버를 사용하는 os6 컨테이너를 실행하면서 ip a s 명령을 실행하고 종료
[root@docker ~]# docker run -it --name os6 --rm --network none centos ip a s1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
[root@docker ~]# docker ps -a | grep os6
overlay
overlay 드라이버는 서로 다른 도커 호스트의 컨테이너가 서로 통신할 수 한다.
단일 호스트인 경우에 사용하지 않으며 도커 스웜(Docker Swarm)과 같은 클러스터 서비스에 사용
macvlan
macvlan 드라이버는 MAC 주소를 컨테이너에 할당하여 도커 데몬이 트래픽을 컨테이너의 MAC 주소로 라우팅할 수 있게 한다.
호스트의 네트워크를 통해 라우팅 하는 것이 아니라 컨테이너가 실제 네트워크에 직접 연결해야 할 때 사용
macvlan 아이피 확인
macvlan 드라이버를 사용하려면 호스트의 인터페이스 중 하나의 네트워크 주소를 알아야 함.
컨테이너는 이 인터페이스와 같은 네트워크 대역을 IP를 할당받기 때문
[root@docker~]# ip a show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP groupdefault qlen 1000
link/ether 08:00:27:a8:29:a3 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.4/24 brd 10.0.2.255scopeglobal noprefixroute dynamic enp0s3
valid_lft 520sec preferred_lft 520sec
inet6 fe80::b20:a37b:ec1b:15a5/64scope link noprefixroute
valid_lft forever preferred_lft forever
[root@docker~]# ip link set enp0s3 promisc on
[root@docker~]# ip a s enp0s3
2: enp0s3: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP groupdefault qlen 1000
link/ether 08:00:27:a8:29:a3 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.4/24 brd 10.0.2.255scopeglobal noprefixroute dynamic enp0s3
valid_lft 441sec preferred_lft 441sec
inet6 fe80::b20:a37b:ec1b:15a5/64scope link noprefixroute
valid_lft forever preferred_lft forever
macvlan 네트워크 생성
부모 인터페이스 카드를 지정하여 새로운 macvlan 네트워크를 생성
[root@docker~]# docker network create-d macvlan --subnet=10.0.2.0/24 --gateway=10.0.2.1 --ip-range=10.0.2.64/26 -o parent=enp0s3 macvlan179d0ccc647c17fc58f6b5db0cfee90b2d743de14e06269ae4d2e386afb21d3ae
[root@docker~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
...
79d0ccc647c1 macvlan1 macvlan local