加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows Containers 大冒险: 容器网络

发布时间:2020-12-13 21:18:07 所属栏目:Windows 来源:网络整理
导读:前言 得益于现代便捷的交通网络,无论是公路,铁路还是飞机,我们的出游变得十分便利。当数据畅游在容器世界中时,也会经历各式各样的网络。目前Windows容器支持 nat,overlay,transparent,l2bridge 和 l2tunnel。其中 l2tunnel 被用于Azure,不在本文的讨论

前言

得益于现代便捷的交通网络,无论是公路,铁路还是飞机,我们的出游变得十分便利。当数据畅游在容器世界中时,也会经历各式各样的网络。目前Windows容器支持 nat,overlay,transparent,l2bridge 和 l2tunnel。其中 l2tunnel 被用于Azure,不在本文的讨论范围内。接下来就来看看其它集中网络。

网络类型

在开始介绍容器网络前,各位需要了解 Hyper-V 的虚拟交换机类型。Hyper-V 现在有三种虚拟交换机类型,外部,内部和专用。在容器网络中使用的是外部和内部。外部虚拟交换机将连接到容器主机的的物理网卡。而内部虚拟交换机会在本地创建虚拟网卡。

要查看当前计算机的容器网络,则可以通过运行 docker network ls 获得。

C:Usersgregguvsreposposts
$ 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参数。以下是启动容器时指定网络的一个例子。

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

Overlay

当容器引擎运行在Swarm集群模式下时,容器会被连接到Overlay网络。连接到Overlay网络上的所有容器主机上的容器便可以相互通信。Overlay网络可以通过插件和Kubernetes一起使用。目前支持的网络插件是Flannel和OVN。

l2bridge

当容器被连接到l2bridge网络时,将和容器主机使用相同IP网段。但是IP地址必须从容器主机网络中静态分配。且该网络模式下,容器主机上的所有容器将因为MAC地址重写功能和容器主机共享同一个MAC地址。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读