学习优先级:★★★★☆
易用性:★★★☆☆
在 Docker Compose 中,每个服务都能配置自己的网络,既可以独立于其他服务进行通信,也可以保持完全隔离。下面通过一个具体示例来演示如何为不同服务分配各自的网络。
示例代码
version: '3'
services:
web:
image: nginx
networks:
- frontend
db:
image: postgres
networks:
- backend
networks:
frontend:
backend:
执行结果
Nginx Web 服务位于 frontend 网络中,PostgreSQL 数据库服务则处于 backend 网络内。
Docker Compose 支持创建多个网络,服务之间既可以被隔离,也可以有针对性地进行通信。每个服务通过分配给它的网络访问其他服务,或者与它们保持隔离。这种机制在实际部署中非常实用——例如将 Web 服务放在前端网络,而数据库仅在后端网络中可达,从而降低数据库被直接暴露的风险。
补充说明
默认情况下,如果未显式定义网络,Docker Compose 会为所有服务创建一个隔离网络。同一网络中的服务可以通过服务名称直接相互访问。
|