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

如何配置两个docker compose文件的网络以实现所属服务互相访问

解决方案

方案一:自定义共享外部网络(最推荐)

Docker Compose默认会为每个单独的compose项目创建独立的隔离桥接网络,要实现跨项目服务互通,最清晰的方式是创建一个公共的外部共享网络,两个项目的服务都接入该网络即可通过服务名直接DNS解析通信。

步骤1:创建公共网络

在宿主机执行命令创建自定义桥接网络:
docker network create shared-api-auth-net

步骤2:修改身份管理服务docker-compose配置

修改后完整配置如下:

version: "3.9"
services:
    auth:
        image: quay.io/keycloak/keycloak
        environment:
            KEYCLOAK_USER: admin
            KEYCLOAK_PASSWORD: admin
        ports:
            - 4000:8080
        # 接入共享网络
        networks:
            - shared-api-auth-net
# 声明外部共享网络
networks:
  shared-api-auth-net:
    external: true

步骤3:修改API服务docker-compose配置

修改后完整配置如下,注意同时修改JWT校验的Authority地址为同网络下的auth服务内部地址:

version: "3.9"
services:
    api:
        build: .
        ports:
            - 5000:80
            - 5001:443
        depends_on:
            - db
        environment:
            - ASPNETCORE_ENVIRONMENT=Production
            - ConnectionString=Server=db,1433;Database=test;User Id=sa;Password=${SQL_PASSWORD}
            - JWTSettings__Issuer=${AUTH_ISSUER}
            # 同网络下直接用服务名+内部端口访问,无需走宿主机端口
            - JWTSettings__Authority=http://auth:8080
            - JWTSettings__Audience=${AUTH_AUDIENCE}
        # 接入共享网络,同时保留默认网络保证api可正常访问同项目的db服务
        networks:
            - shared-api-auth-net
            - default
    
    db:
        image: mcr.microsoft.com/mssql/server
        user: root
        ports:
            - 1433:1433
        environment:
            - SA_PASSWORD=${SQL_PASSWORD}
            - ACCEPT_EULA="Y"
# 声明外部共享网络
networks:
  shared-api-auth-net:
    external: true

步骤4:验证配置

依次启动两个服务后,进入api容器执行curl http://auth:8080,如果能正常返回Keycloak的响应内容则说明网络互通配置成功。

方案二:复用已有项目网络(适合临时调试)

如果不想额外创建新网络,也可以直接复用其中一个项目的默认网络:

  1. 先启动身份管理服务,执行docker network ls找到身份服务项目的默认网络,命名规则一般为[身份服务compose所在文件夹名]_default
  2. 在API服务的compose中声明该网络为外部网络,将api服务接入该网络即可,配置逻辑和方案一一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:45:01