敲docker network ps命令,显示三种模式。
1.bridge模式:使用–net =bridge指定,默认设置。桥接式网络模式(默认)。
容器的默认网络模式,docker在安装时会创建一个名为docker0的Linux bridge,在不指定–network的情况下,创建的容器都会默认挂到docker0上面。
2.host(open)模式:使用–net =host指定。开放式网络模式,和宿主机共享网络。
通过命令–network=host 指定,使用host模式的容器可以直接使用docker host的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好。
3.none(close)模式:使用–net =none指定。 封闭式网络模式,不为容器配置网络。
这种网络模式下容器只有lo回环网络,没有其他网卡。none网络可以在容器创建时通过 --network=none 来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。
4.container(join)模式:使用–net =container:NAMEorID指定。联合挂载式网络模式,和其他容器共享网络。
创建容器时使用–network=container:NAME_or_ID这个模式在创建新的容器的时候指定容器的网络和一个已经存在的容器共享一个Network Namespace,但是并不为docker容器进行任何网络配置,这个docker容器没有网卡、IP、路由等信息,需要手动的去为docker容器添加网卡、配置IP等。
5.user-defined模式
用户自定义模式主要可选的有三种网络驱动:bridge、overlay、macvlan。bridge驱动用于创建类似于前面提到的bridge网络;overlay和macvlan驱动用于创建跨主机的网络、IP等。