Docker 网络
1.none 网络
顾名思义,none网络就是什么都没有的网络,挂载这个网络下的容器除了lo,没有其他任何网卡,容器创建时,可以通过 --network=none 指定使用none网络
应用场景:一些对安全性要求高并且不需要网络连网的应用可以使用none网络,比如专门用于生成密码的容器,就可以放到none网络避免密码被盗取
2.Host网络
连接到host网络的容器共享Docker host的网络栈,容器的网络配置和host完全一样,可以通过 --network=host 指定使用host网络
应用场景:使用Docker host 的网络最大好处是性能,如果容器对网络传输效率有较高要求,则可以直接选择host网络,当然也有不便之处,比如要考虑端口冲突问题,host上面已经使用的端口就不能再用了
3、Bridge网络
Docker 安装时会创建一个命名为docker0 的linux bridge,如果不指定 --network,创建的容器默认会被挂到docker0上
一个新的网络接口 vethe3caad7 被挂到docker0上,vethe3caad7是新创建容器的虚拟网卡,
容器里 网卡和vethe3caad7 是一对veth pair,veth pair 是一对成对出现的特殊网络设备。
4、User-defined 网络
Docker 提供三种 user-defined网络驱动,bridge、overlay、macvlan,overlay和macvlan用于创建跨主机网络
(1)docker自动分配ip网段
(2)手动指定ip网段
(3)创建一个指定静态ip的容器
注:只有使用 --subnet 创建的网络才能指定静态ip