# 参考连接
- https://www.jianshu.com/p/3004fbce4d37
# 默认网络
docker-compose up 的时候,默认创建一个 以 _default 为后缀的默认网络
docker-compose.yml 中的容器都属于默认网络
# 自定义网络
可能通过一级配置 networks 来自定义网络,可以创建更复杂的网络选项和配置,也可以用来连接已经存在的网络(不是通过 compose 创建的)
每个 service 配置下也可以指定 networks 配置,来指定一级配置的网络。
version: "3" | |
services: | |
proxy: | |
build: ./proxy | |
networks: | |
- frontend | |
app: | |
build: ./app | |
networks: | |
- frontend | |
- backend | |
db: | |
image: postgres | |
networks: | |
- backend | |
networks: | |
frontend: | |
# Use a custom driver | |
driver: custom-driver-1 | |
backend: | |
# Use a custom driver which takes special options | |
driver: custom-driver-2 | |
driver_opts: | |
foo: "1" | |
bar: "2" |
- 一级配置 networks 用来创建自定义的网络 。这里配置了两个 frontend 和 backend . 且自定义了网络类型。
- 每一个 services 下,proxy , app , db 都定义了一下 networks 配置。
- proxy 只加入到 frontend 网络。
- db 只加入到 backend 网络。
- app 同时加入到 frontend 和 backend 。
- db 和 proxy 不能通讯,因为不在一个网络中。
- app 和两个都能通讯,因为 app 在两个网络中都有配置。
- db 和 proxy 要通讯,只能通过 app 这个应用来连接。
# 设置默认网络
networks: | |
default: | |
# Use a custom driver | |
driver: custom-driver-1 |
# 指定一个已经存在的网络
networks: | |
default: | |
external: | |
name: frontend | |
frontend: | |
external: | |
name: backend |