Docker 网络管理 - 四种网络模式



* host模式   (容器的网络,寄居于宿主机。容器和宿主机网络一样。)

使用docker run时使用--net=host指定

docker使用的网络实际上和宿主机一样,在容器内看到的网卡ip是宿主机上的ip。相当于寄存于宿主机的网络。它有一定的局限性,如容器里开启了80端口,宿主机也开启了80端口,会产生冲突。

例如:docker run -it --rm --net=host centos bash   #退出容器,自动删除容器。

* container模式   (多个容器,共用指定的一个容器的IP)

使用--net=container:container_id centos bash

多个容器使用指定容器的网络,看到的所有容器ip是一样的container:container_id第一个是固定格式,第二个是指定容器的ID,这样启动新容器后,新的IP和ID与指定的ID容器的IP、ID是一样的。

* none模式

使用--net=none指定

这种模式下,不会配置任何网络

* bridge模式

使用--net=bridge指定

默认模式,不用指定默认就是这种网络模式。这种模式会为每个容器分配一个独立的Network Namespace。类似于vmware的nat网络模式。同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的。