早期的网桥就是将两个计算机连接起来的网络通信设备,但是在现在很多虚拟化技术,无论是虚拟机还是容器技术想要进行网络通信所以提出了个虚拟网桥的概念。虚拟网桥的概念的提出含义就是使用网桥搭建一个局域网而虚拟机和容器和宿主机是局域网内同等级别节点。用一句话总结就是现在虚拟化技术就是通过网桥技术将宿主机和虚拟机和容器搭建成局域网,是虚拟机和宿主机之间可以通信。

所以一般创建虚拟机想要上外网一般有两种方式一种是通过桥接借助宿主机的物理连接,然后和宿主机配上相同的上网环境的就可以上网,还有一种是用桥接的方式是虚拟机和宿主机之间能够通信,然后借助NAT(网络地址转换)使用宿主机代理上网。而docker就是使用的这种技术。

docker的桥接模式。

linux的桥接工具:

sudo yum install bridge-utils
brctl show

可以显示网桥的接口。

我一直有一点困惑的就是ip addr 返回了网桥用来连接容器的接口信息,成对的ip link 只是网桥和容器的连接接口却没有网桥和宿主机连接ip link,而且在使用ip addr 是会返回网桥的接口信息,难道是因为网桥在宿主机内部的原因吗?

network ls 可以查看linux内部的网络类型。

创建一个网桥

docker network create -d bridge mybridge

使两个容器连接网桥:

docker network connect mybridge test1
docker network connect mybridge test2

docker network inspect mybridge  可以查看网桥的具体信息。

默认网桥可以自动上网,而自己创建的网桥需要自己配置NAT来上网。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐