学习优先级:★★★★☆
易用性:★★★☆☆
容器之间的通信可以通过使用 DNS(域名系统)大大简化。每个容器服务都有一个唯一的名称,可以用来发起请求,而无需使用可能会变化的 IP 地址。
以下是一个示例,展示了如何让两个容器相互通信。
示例代码
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
app:
image: my_app_image
depends_on:
- web
environment:
- WEB_URL=http://web
执行结果
运行此配置后,app 容器可以通过 URL http://web 访问 web 容器。
在这个示例中,我们定义了两个服务:web 和 app。web 容器运行一个 Nginx 服务器,而 app 容器访问 web 容器。通过使用服务名称(web)而不是 IP 地址,app 容器可以独立于 web 容器的 IP 地址访问它,即使 IP 地址发生变化。
补充说明
DNS 解析的一个优势是它简化了网络配置的管理,并使微服务之间的通信更加灵活。容器可以自动在网络中注册和解析其名称。这减少了对 IP 地址的依赖,提高了系统的可维护性和可扩展性。