docker bridge 详解

作者: 鲁智深 分类: docker 发布时间: 2019-01-06 03:22

Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。

通过 ip a 命令可查看

1
ip a

我们可以通过 docker network ls 列出docker上有哪些网络

1
docker network ls
查看docker网络

查看docker网络

bridge 详解

1、容器之间怎么通信

启动Docker时,会自动创建默认桥接网络(也称为bridge),并且除非另行指定,否则新启动的容器将连接到该网络。您还可以创建用户定义的自定义网桥。用户定义的网桥优于默认bridge 网络。

启动一个 ubuntu 容器,并执行

1
docker network inspect b1446778ea42
启动容器

启动容器

发现 ubuntu 容器连接到了 bridge 这个网络上

bridge网络

bridge网络

在本机上可以通过 ip a 查看多出了 veth8efec18 接口

网络接口

网络接口

也可以通过 brctl 命令查看,安装命令如下

1
2
sudo apt install bridge-utils
brctl show
brctl

brctl

在启动一个ubuntu容器,并用 brctl show 再次查看接口状态

1
2
3
4
docker run -it -d --name test3 ubuntu /bin/bash
brctl show #通过brctl工具查看所有网络接口状态
ip a #通过本机查看网络接口
docker network inspect b1446778ea42 #通过docker命令查看网络接口
brctl show

brctl show

通过以上实验发现2个容器之间的都是通过docker0这个接口进行通信的。

2、容器怎么访问外网

访问外网是通过本机的eth0接口出去,docker 通过 NAT(Network Address Translation,网络地址转换)转换成eth0地址,才能访问外网,前提条件是本机也能访问外网。

bridge network

bridge network

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注