7.1 Docker 网络配置-容器间通信
在早期的Docker版本及介绍中,通常采用 --link 参数使容器互联。如果N个容器彼此通信, 如此配置是令人崩溃的。
随着Docker版本的提升,强烈建议大家通过自定义 docker bridge(自定义) 网桥来连接多个容器, 摈弃 --link 参数
演示环境
Linux系统:Ubuntu 16.04
docker版本:18.09.5
演示目标: 启动两个容器,分别是CTN1,CTN2. 直接通过容器名(或hostname)相互通信.
互联原理
bridge网络
docker的桥接网络使用虚拟网桥,bridge网络用于同一主机上的docker容器相互通信,连接到同一个网桥的docker容器可以相互通信
默认网桥Docker0
默下启动docker之后会创建一个名为 docker0的网桥,新创建的容器都会自动连接到该网桥,但默认网桥具有一定缺陷
- 默认桥接网络中的容器只能通过IP地址访问其他容器(除非使用遗留的-link指令连接两个容器),而容器的IP创建前并不确定,为我们部署系统造成很大障碍(如服务的注册与发现,gateway的基本设置)
- 由于默认桥接网络只有一个,因此所有容器的网络配置都是一样的.
自定义网络
- 自定义桥接网络提供DNS解析,可以通过容器的名字或是别名访问其他容器
- 用户自定义网络可以在创建时指定