도커 네트워크 드라이버 - 브리지 네트워크

mohadang·2022년 3월 20일
0

도커

목록 보기
8/26
post-thumbnail

브리지 네트워크는 기본 docker0 브리지가 아닌 사용자 정의 브리지를 새로 생성해 각 컨테이너에 연결할 수 있다.
컨테이너는 연결된 브리지를 통해 외부와 통신할 수 있다.

기본적으로 존재하는 docker0를 사용하는 브리지 네트워크가 아닌 새로운 브리지 타입의 네트워크를 생성

root@red-virtual-machine:~# docker network create --driver bridge mybridge
980ce48afa70afaaa981b75f5ec794f084d77fedde97134259ccc13b902a8e2a

생성된 도커 브리지 확인

root@red-virtual-machine:~# docker network ls
NETWORK ID     NAME                DRIVER    SCOPE
1ab9e3b84bac   bridge              bridge    local <-- 기본 도커 네트워크 드라이버(브리지)
52cbe87fc308   host                host      local
5ff836f5f909   my_custom_network   bridge    local
980ce48afa70   mybridge            bridge    local <-- 방금 생성
a0d789747ff4   none                null      local

새로 생성한 mybridge 네트워크를 사용하는 컨테이너 생성

root@red-virtual-machine:~# docker run -i -t --name mynetwork_container --net mybridge ubuntu:14.04

컨테이너의 ip를 확인하면 새로운 IP 대역인 172.18 대역으로 내부 IP가 할당 되었다.

root@8e473f10523f:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:ac:12:00:02
          inet addr:172.18.0.2  Bcast:172.18.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:48 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:6751 (6.7 KB)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

호스트 IP 구성을 확인하면 새로운 브리지와 컨테이너의 가상 네트워크 인터페이스를 확인 할 수 있다.

root@red-virtual-machine:~# ifconfig
br-980ce48afa70: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.1  netmask 255.255.0.0  broadcast 172.18.255.255
        inet6 fe80::42:55ff:fe07:2dca  prefixlen 64  scopeid 0x20<link>
        ether 02:42:55:07:2d:ca  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 29  bytes 4260 (4.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:6bff:fefe:f54e  prefixlen 64  scopeid 0x20<link>
        ether 02:42:6b:fe:f5:4e  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35  bytes 4882 (4.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.159.128  netmask 255.255.255.0  broadcast 192.168.159.255
        inet6 fe80::91dd:c79d:4366:c741  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:67:67:2d  txqueuelen 1000  (Ethernet)
        RX packets 36847  bytes 53113401 (53.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5276  bytes 399479 (399.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 364  bytes 32608 (32.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 364  bytes 32608 (32.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth3df71ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::d05a:3fff:feff:f801  prefixlen 64  scopeid 0x20<link>
        ether d2:5a:3f:ff:f8:01  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 54  bytes 7319 (7.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethb4fef0e: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::2021:4dff:fe1a:6bba  prefixlen 64  scopeid 0x20<link>
        ether 22:21:4d:1a:6b:ba  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 70  bytes 8826 (8.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

브리지에 연결된 컨테이너를 유동적으로 붙이고 뗄 수 있다.

root@red-virtual-machine:~# docker network disconnect mybridge mynetwork_container
ipconfig로 확인하면 veth 하나가 사라진다.

root@red-virtual-machine:~# docker network connect mybridge mynetwork_container
ipconfig로 확인하면 veth 하나가 새로 생긴다.

네트워크의 서브넷, 게이트웨이, IP 할당 범위 등을 임의로 설정

root@red-virtual-machine:~# docker network create --driver=bridge --subnet=172.72.0.0/16 --ip-range=172.72.0.0/24 --gateway=172.72.0.1 my_custom_network
5ff836f5f9098c1b2bde6a292c0663d5680f310bdd54db0fa61af7ae891579fe

 단 subnet과 ip-rage는 같은 대역이어야 한다.

출처

  • 책 : 시작하세요 도커/쿠버네티스
profile
mohadang

0개의 댓글