You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于多Docker Compose文件搭建本地开发网络的问题咨询

解决方案

1. 创建跨Compose的自定义桥接网络

先手动创建带固定子网的自定义网络,满足跨Compose复用、静态IP分配的需求:

docker network create --driver bridge --subnet 192.168.100.0/24 --gateway 192.168.100.1 dev-lab-network

子网可自行调整,只要不与主机现有网络冲突即可。

2. 配置后端服务Compose文件(示例:docker-compose-backend.yml)

确保后端服务加入自定义网络、配置静态IP,不暴露端口到主机:

version: '3.8'

services:
  sql-db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: your-db-password
    networks:
      dev-lab-network:
        ipv4_address: 192.168.100.10
    # 移除ports配置,避免主机直接访问

networks:
  dev-lab-network:
    external: true  # 引用已创建的外部网络

3. 配置应用服务Compose文件(示例:docker-compose-app.yml)

  • 仅给proxy服务配置端口映射到主机
  • 所有服务加入同一个自定义网络,配置静态IP
  • 确保API服务与proxy在同一网络,支持内部服务名解析
version: '3.8'

services:
  api-service-1:
    image: your-api-image:latest
    networks:
      dev-lab-network:
        ipv4_address: 192.168.100.20
    # 移除ports配置,禁止主机直接访问
    environment:
      DB_HOST: sql-db  # 可通过服务名或静态IP访问后端

  api-service-2:
    image: your-api-image:latest
    networks:
      dev-lab-network:
        ipv4_address: 192.168.100.21
    # 移除ports配置,禁止主机直接访问

  proxy:
    image: nginx:alpine
    ports:
      - "9001:80"  # 仅proxy暴露端口到主机
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf  # 挂载反向代理配置
    networks:
      dev-lab-network:
        ipv4_address: 192.168.100.30
    # proxy可通过服务名访问API,如http://api-service-2:80

networks:
  dev-lab-network:
    external: true

4. Nginx反向代理配置示例(nginx.conf)

确保proxy能通过内部服务名路由到API:

events {}

http {
  server {
    listen 80;

    location /api1/ {
      proxy_pass http://api-service-1:80/;
    }

    location /api2/ {
      proxy_pass http://api-service-2:80/;
    }
  }
}

核心要点说明

  • 限制主机访问范围:所有API、后端服务必须移除ports配置,仅保留proxy的端口映射,确保主机只能通过localhost:9001访问服务。
  • 内部服务名解析:所有服务加入同一个自定义桥接网络后,Docker会自动提供DNS服务,支持用服务名(如api-service-2)直接访问对应容器。
  • 静态IP与互联网访问:自定义网络支持静态IP配置,且默认允许容器通过网关访问互联网,完全匹配需求。

内容的提问来源于stack exchange,提问作者user23137927

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:21:15