首页/云/云与容器速查/Compose 网络与服务发现
容器与 Docker106 条

Compose 网络与服务发现

默认自动创建 <项目>_default 网络,服务名即 DNS 主机名;需要隔离或接入既有网络(如统一反向代理)时,在顶层声明自定义网络并用 external 接入。

云与容器速查云更新于 2026-10-12
默认网络不声明时自动建 <项目>_default,服务名互访
自定义顶层 networks 声明,服务下 networks: [backend]
隔离internal: true 切断外网出口(仅内部互访)
别名aliases 给服务在该网络追加 DNS 名
外部网络external: true 接入已有网络(部署栈互联)

示例

示例
services:
  web:
    networks: [frontend, backend]
  db:
    networks: [backend]
networks:
  frontend:
  backend:
    internal: true
同一服务接多个网络时,容器有多个网卡;应用绑定 0.0.0.0 才在所有网络可达。

易错点

  • 把 db 只放 internal 网络又想在宿主连接:外网口不存在,本地客户端连不上
  • 接了多个网络后按服务名连接失败:确认两边服务在同一网络列表里

数据来源与参考

  • Docker Docs:Compose networks

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌