docker网络模式

https://blog.csdn.net/qq_42770949/article/details/105283969

docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下5种网络模式:
bridge模式:使用–net =bridge指定,默认设置;
overlay模式:使用--net=overlay指定;
host模式:使用–net =host指定;
none模式:使用–net =none指定;
container模式:使用–net=container:指定容器名;

这里主要讲解bridge、overlay
bridge模式网络
bridge模式是Docker的默认设置,所以你也可以使用
docker run -d -P nginx:1.9.1。也可以
docker run -d -P --net=bridge nginx:1.9.1
如果你没有使用-P(发布该容器暴露的所有端口)或者-p
host_port:container_port(发布某个特定端口),IP数据包就不能从宿主机之外路由到容器中。


单一docker
网络模式4种:
docker run 创建 Docker 容器时,可以用 --net 选项指定容器的网络模式,Docker 有以下 4 种网络模式:
bridge 模式,使用 --net=bridge 指定,默认设置,可以不写。docker容器内的ip网络和宿主机ip是相通的。
host 模式,使用 --net=host 指定。这种方式是不安全,隔离良好的环境中(比如租户的虚拟机中)使用这种方式,问题不大。
container 模式,使用 --net=container:NAMEorID 指定。与被指定的容器,共用网络,网络完全相同。
none 模式,使用 --net=none 指定。完全没有网络,使用link联系。

集群docker(swarm)
网络模式5种:(多出一种overlay为自定义模式,是从其余和单一docker的4种网络模式中选择)
bridge模式:使用--network=bridge指定,默认设置,可以不写。docker容器内的ip网络和宿主机ip是相通的。
overlay模式(跨主机的网络通信):使用--network=overlay指定;
--endpoint-mode 有两种模式,一种是vip(默认),另一种是dnsrr,dnsrr模式下 -p参数是无效的,就是说其服务器是无法直接通过端口映射被外边访问的,如果想要被外边访问有两种方式:一种是使用浏览器代理,可参考https://5socks.net/Manual/browser_en.html ;另一种是使用类似nginx转发功能。

原文地址:https://www.cnblogs.com/andy9468/p/14808581.html