Docker 网络

Docker安装时会自动在host上创建三个网络,用docker network ls 命令查看
Docker 网络

1.none 网络
顾名思义,none网络就是什么都没有的网络,挂载这个网络下的容器除了lo,没有其他任何网卡,容器创建时,可以通过 --network=none 指定使用none网络
Docker 网络

应用场景:一些对安全性要求高并且不需要网络连网的应用可以使用none网络,比如专门用于生成密码的容器,就可以放到none网络避免密码被盗取

2.Host网络
连接到host网络的容器共享Docker host的网络栈,容器的网络配置和host完全一样,可以通过 --network=host 指定使用host网络
Docker 网络

应用场景:使用Docker host 的网络最大好处是性能,如果容器对网络传输效率有较高要求,则可以直接选择host网络,当然也有不便之处,比如要考虑端口冲突问题,host上面已经使用的端口就不能再用了

3、Bridge网络
Docker 安装时会创建一个命名为docker0 的linux bridge,如果不指定 --network,创建的容器默认会被挂到docker0上
Docker 网络

一个新的网络接口 vethe3caad7 被挂到docker0上,vethe3caad7是新创建容器的虚拟网卡,
容器里 网卡和vethe3caad7 是一对veth pair,veth pair 是一对成对出现的特殊网络设备。

Docker 网络
4、User-defined 网络
Docker 提供三种 user-defined网络驱动,bridge、overlay、macvlan,overlay和macvlan用于创建跨主机网络
(1)docker自动分配ip网段
Docker 网络
(2)手动指定ip网段
Docker 网络

(3)创建一个指定静态ip的容器
Docker 网络

注:只有使用 --subnet 创建的网络才能指定静态ip
Docker 网络

相关推荐