도커 네트워크 구조

3824 단어 도커도커

도커 네트워크 구조

도커는 컨테이너에 내부 IP를 순차적으로 할당하며, 이 IP는 컨테이너를 재시작할 때마다 변경될 수 있다.
컨테이너를 시작할 때마다 호스트에 veth...라는 네트워크 인터페이스를 생성함으로써 도커 컨테이너의 인터페이스와 바인딩 된다.

이를 통해 도커 컨테이너는 호스트 외부와 통신할 수 있게 된다.

veth 인터페이스는 사용자가 직접 생성할 필요는 없으며컨테이너가 생성될 때 도커 엔진이 자동으로 생성한다

veth에서 v는 virtual을 뜻한다

root@red-virtual-machine:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
a9610b002a37   ubuntu:14.04   "/bin/bash"   19 seconds ago   Up 18 seconds             myubuntu

root@red-virtual-machine:~# ifconfig
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 26  bytes 3959 (3.9 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 36087  bytes 53048847 (53.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4777  bytes 348872 (348.8 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 242  bytes 21182 (21.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 242  bytes 21182 (21.1 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 47  bytes 6664 (6.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth 인터페이스뿐 아니라 dockere()이라는 브리지도 존재하는데 docker() 브리지는 각 veth 인터페이스와 바인딩돼 호스트의 eth0 인터페이스와 이어주는 역할을 한다.

출처

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

좋은 웹페이지 즐겨찾기