首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

docker网络的组成

Docker网络有四个不同的原生网络组成分别是none 网络,host网络、user-defined网络、bridge网络。

Docker安装的时候就会自动创建none host bridge网络,但是user-degined是不会自动创建的

none网络,其实就是相当于我们的一个没有连接到外网的网络,ta是一个封闭性网络,这个网络优点在于安全性高。

Host网络:容器如果连接到docker host 网络栈的话,那么ta和host是共享网络的。使用host网络的优点在于性能上比较好、传输速率也快,但是也有一些限制,就是如果使用过的端口就不能够重复使用了,不然会产生冲突的。

Bridge网络:在docker安装的时候会创建了一个名为docker0的bridge。在默认情况下容器时连接到这个docker0上。如果容器的使用bridge网络,会创建一对veth pair 的网卡,一端连接在容器上,另一端时会连接到dockr0上,这个有点像三层交换,连接到两个主机,这里不要开启路由功能,自带的路由功能。

User-defined网络。在这个里涉及一个很想dhcp的东西,就是需要设置subnet,这个相当于dhcp的地址池,如果不设置这个,就会给容器下发ip地址,还不能给容器设置静态的ip地址。两个容器连接到同一个bridge的时候是可以相互进行通信的 ,但是 如果涉及到跨bridge网络的时候就会出现报错。但是可以通过设置跟那个网络设备一样,加个路由器,然后启动转发功能,这样就能够实现跨bridge之间的通信了

容器之间的通信有三个方式:ip、docker dns server joined

1、Ip通信就是通过指定同一个网络的网卡就可以实现了,从上面的那个bridge的拓扑结构上看,我才应该是bridge网络。

Docker dns server:docker dns server就是建立在user-defined的基础上进行 使用这个网络有一个优点就是可以避免在进行部署的时候无法分配IP地址,等部署以后再部署的尴尬。流程就是,首先创建名为1并且一个带有地址池的容器,然后在创建连接到1容器的另外两个容器就可以了

Joined网络:joined网络可以让多个容器共享一个网卡。首先创建一个name=1的容器,然后将其他容器连接到这个1的容器上就可以了。(这使用的和docker dns server 有啥差距这里是共享网卡的)

容器和外部连接分为外部访问内部,容器访问外部网络。首先是外部访问内部是需要做个nat转换

外部访问内部。做一个端口映射就可以了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200115A07U7Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券