docker容器的三种通信方式bridge、host、none

##docker容器之间通信的三种方式
上一篇讲述了如何使用docker部署spring boot微服务,那么多个容器中spring boot微服务之间是如何进行通信的呢,在本篇中只涉及到单机情况下,首先探索docker容器之间三种通信方式。


在docker没有引进网络新特性之前,单机容器间通信采用-link(bridge)即可满足需求。新特性主
要是内置dns server,只有在创建自定义网络,dns server才会起作用。后期将会详细介绍这两种
方式。

如果你的服务器上只安装了docker,首先使用 docker network ls,查看本机容器间通信的几种方式如下图所示。

这里写图片描述

1。默认网络通信模式brigde网桥
首先,默认情况下docker运行容器时,宿主机会创建一个bridge网桥,是一个名叫docker 0的虚拟网桥 ,默认docker 0 ip为172.17.0.1,网桥再给容器分配虚拟子网ip,并且以网桥ip作为网关。在不指定网络的情况下,容器之间的通信都是通过bridge网桥进行通信。然后网桥在与宿主机镜像进行ip转换,端口映射等通信。
其实这种bridge网桥与容器,与宿主机之间的通信,有过网络方面经验的同学,看一下下面一张图,就应该可以轻松的了解这种通信的原理了,有点类似与三层路由交换。

docker容器的三种通信方式bridge、host、none_第1张图片

2.host宿主机模式:
如果容器指定网络模式为host,容器不会有自己的network namespace,而是和宿主机共用一个network网络及ip,容器不会有虚拟出自己的网卡、ip等,当然除了网络通信这一块和宿主机绑定了,其余的容器内容还是和宿主机安全隔离了。这种在做容器迁移时,很不方便,不推荐使用。原理图示如下,

docker容器的三种通信方式bridge、host、none_第2张图片

3.none模式
容器指定网络模式-net为none时,docker容器拥有自己的network namespace,但是所有网络配置都得自行配置,如ip、网卡等,这种方式很麻烦,不推荐使用,原理图示如下

docker容器的三种通信方式bridge、host、none_第3张图片

上一篇:docker 部署spring boot 微服务
下一篇:容器间自定义网络通信,eureka服务注册实例

你可能感兴趣的:(docker容器的三种通信方式bridge、host、none)