使用docker-compose指定自定义网络
docker-compose不仅可以使用默认的应用程序网络,还能通过顶级 networks 键来定义自定义网络。这种灵活性使得您能够创建更复杂的网络拓扑,并指定特定的网络驱动程序和选项。此外,您还可以将服务连接到那些未被Compose管理的外部网络。
在服务层面,可以通过 networks 键来指定每个服务所连接的网络,该服务级别的密钥是对顶级 networks 中条目的名称列表的引用。
以下是一个示例Compose文件,展示了如何定义两个自定义网络。在这个示例中,Proxy 服务与 db 服务是相互隔离的,因为它们不共享公共网络,只有 app 服务能够与这两个服务进行通信。
version: "3"
services:
Proxy:
build: ./Proxy
networks:
- frontend
app:
build: ./app
networks:
- frontend
- backend
db:
image: postgRes
networks:
- backend
networks:
frontend:
driver: custom-driver-1
backend:
driver: custom-driver-2
driver_opts:
foo: "1"
bar: "2"
通过为每个连接的网络设置 IPv4_address 和/或 IPv6_address,可以为网络配置静态IP地址。
从版本3.5开始,您还可以为网络指定自定义名称:
version: "3.5"
networks:
frontend:
name: custom_frontend
driver: custom-driver-1
注意:
1. 必须保留并原样返回所有 [[[IMG_n]]] 占位符。
