# 参考连接

  • 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"
  1. 一级配置 networks 用来创建自定义的网络 。这里配置了两个 frontend 和 backend . 且自定义了网络类型。
  2. 每一个 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
更新于 阅读次数