centos7下安装docker(12.1bridge网络)

容器默认使用的时bridge网络

docker安装时会创建一个 命令为docker0的linux bridge。如果不指定--network=,运行的容器会默认挂到docker0上

interface一列就是容器的虚拟网卡,现在由于容器都处于关闭的状态,所以没有网卡信息

  开启一个容器,看一下网络的变化

 veth48a8eca这个虚拟网卡被挂到了docker0上面

进入容器看一下网卡信息:

可以看到容器中的网卡名字是eth0@if315而在host上面显示的是veth48a8eca,

其实:eth0@if315和veth48a8eca是一对veth pair。veth pair是一种成对出现的特殊网络设备,可以把他想像成由一根虚拟网线连起来的一对网卡,网卡的一头叫做:eth0@if315,另一头是veth48a8eca挂在了docker0上,其效果就是将eth0@if315挂在了docker0上

我们看到eth0@if315配置了172.17.0.2/16的ip,我们再运行一个容器,看看他的ip是否也是同样的

我们发现新运行的容器的IP由172.17.0.3顺延下去了,而不是一个独立的网段,而且都是172.17.0的网段的

为什么都是这个网段上面的呢?

可以通过docker network inspect bridge

看到网卡的配置信息:subnet是172.17.0.0/16,gateway是172.17.0.1,这个网管来自哪呢?

我们可以看到host主机上面的docker0的ip就是172.17.0.1,所以这个网管就是docker0

现在的拓扑图是:(此图是借鉴于他人的)

创建容器时docker会自动从172.17.0.0/16中分配一个IP,这里16为的掩码保证由足够的IP可以给容器使用

---恢复内容结束---

原文地址:https://www.cnblogs.com/lkun/p/7743818.html