Windows Containers 大冒險: 容器網絡

前言

得益於現代便捷的交通網絡,不管是公路,鐵路仍是飛機,咱們的出遊變得十分便利。當數據暢遊在容器世界中時,也會經歷各式各樣的網絡。目前Windows容器支持 nat, overlay, transparent, l2bridge 和 l2tunnel。其中 l2tunnel 被用於Azure,不在本文的討論範圍內。接下來就來看看其它集中網絡。docker

網絡類型

在開始介紹容器網絡前,各位須要瞭解 Hyper-V 的虛擬交換機類型。Hyper-V 如今有三種虛擬交換機類型,外部,內部和專用。在容器網絡中使用的是外部和內部。外部虛擬交換機將鏈接到容器主機的的物理網卡。而內部虛擬交換機會在本地建立虛擬網卡。windows

要查看當前計算機的容器網絡,則能夠經過運行 docker network ls 得到。服務器

C:\Users\greggu\vsrepos\posts
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a5f85bc334db        Default Switch      ics                 local
d2eb7fb1de63        External            transparent         local
4ea88ac7d5be        nat                 nat                 local
76080eecc255        none                null                local

NAT

當容器引擎第一次運行時默認會建立名爲nat的網絡,該網絡使用內部虛擬交換機及名爲WinNAT的Windows系統組件。默認狀況下,Windows上運行的容器將被鏈接到該網絡,並從 172.16.0.0/16 網絡中自動得到IP地址。在NAT網絡中,容器到容器主機的端口轉發/映射也是被支持的。網絡

Transparent

在容器啓動時能夠經過指定 --network 參數來鏈接到類型爲 transparent 的網絡,此時容器將經過Hyper-V外部交換機鏈接到物理網絡,並從外部網絡中的DHCP服務器中得到IP地址。也能夠增長額外的--ip參數指定固定IP,可是須要注意的是目前Windows容器不支持--ip6參數。如下是啓動容器時指定網絡的一個例子。post

docker run -it --rm --name demo02 --network External greggu/demo02:0.0.1 cmd

Overlay

當容器引擎運行在Swarm集羣模式下時,容器會被鏈接到Overlay網絡。鏈接到Overlay網絡上的全部容器主機上的容器即可以相互通訊。Overlay網絡能夠經過插件和Kubernetes一塊兒使用。目前支持的網絡插件是Flannel和OVN。spa

l2bridge

當容器被鏈接到l2bridge網絡時,將和容器主機使用相同IP網段。可是IP地址必須從容器主機網絡中靜態分配。且該網絡模式下,容器主機上的全部容器將由於MAC地址重寫功能和容器主機共享同一個MAC地址。插件

相關文章
相關標籤/搜索