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
相关产品推荐
相关产品推荐

