介绍
本文将讲解Docker容器网络中通过服务名或别名连接容器服务的原理以及分析,涉及到netfilter/iptables防火墙、evth-pair技术、DNS等技术。因Docker容器网络较为复杂,本文不会涉及docker之外的技术及与docker无关的其他技术。

Docker网络模式介绍
Docker容器启动时,默认的bridge网络不支持指定固定IP。
若每次重启Docker容器,其IP地址都会发生变化。我们可以使用自定义网络,并在启动容器时指定IP来解决问题。
Veth-pair技术
veth-pair技术是一种在网桥中实现的桥接技术,在数据链路层使用MAC地址转发数据。
vethpair是一种虚拟网络设备接口,一端连接网络协议栈,另一端彼此相连,常被用于构建虚拟网络拓扑。它充当一座桥梁,连接各种虚拟网络设备,如图1所示。
Docker DNS实现
Docker的自定义网络里的DNS(embeddedDNSserver)将容器的流量与docker0相连,相当于一台交换机,如图2所示。
EmbeddedDNSserver与早期的容器服务发现方式不同,即通过dockerlink,在容器内修改/etc/hosts文件完成别名互访。此方法存在很多问题,已经过时,不再使用。
作者:小编小本本
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6358.html
