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

Docker Compose中能否为Service-A映射不同端口供Service-B访问?

可以实现,配置方法如下

你要的效果完全可以在Docker Compose里实现,不用把端口发布到主机,逻辑和K8s里Service的port与targetPort映射一致,具体配置如下:

修改你的docker-compose.yml,给service-a添加长格式端口配置,指定仅内部网络可用的端口映射:

services:
  service-a:
    image: container-a
    ports:
      - target: 8080       # 容器实际监听的端口
        published: 80      # 内部网络暴露的端口
        protocol: tcp
        mode: internal     # 仅内部网络可见,不发布到主机
  service-b:
    image: container-b

配置说明:

  • mode: internal 是核心设置,它让80端口只在Docker Compose默认创建的内部网络中生效,不会绑定到宿主机的任何端口,满足你“未向主机发布任何端口”的要求。
  • 同一网络内的service-b即可通过http://service-a:80访问service-a容器的8080端口。

Docker Compose默认会给所有服务分配同一个默认桥接网络,无需额外配置网络,直接使用上述配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:22:45