【发布时间】:2017-12-28 20:45:24
【问题描述】:
我正在运行一组这样的服务:
version: '2'
services:
web:
build: ./web
ports:
- "3000:3000"
links:
- api
api:
build: ./api
links:
- db
db:
image: postgres
我想将web服务暴露给宿主机的网络接口,将宿主机的3000端口绑定到容器的3000端口。但是,我只想将api 服务公开给内部网络,这意味着我只希望它可以被 Web 服务访问。 IIRC,这意味着我需要在 docker-compose 文件中将api 服务暴露给bridge 网络。
如果我正在运行 docker-cli,我会通过指定 --net bridge 参数来执行此操作。但我不确定如何在撰写文件中执行此操作。请帮忙!
【问题讨论】:
-
自从我使用 Docker Compose 已经有一段时间了,但在我看来,这应该已经可以满足您的需求了 - 从
web容器的角度来看,主机名api应该解析为私网api容器的IP地址。 -
docker网络是否分配了动态端口?
-
无需分配端口。如果您在
api容器内的端口n上有监听,那么web容器将能够通过api:n连接到它。 -
现在我有一个不同的问题,只有我的
api容器在我运行docker-compose up时启动 -
@OliverCharlesworth 工作。请正式添加您的答案,并将其标记为正确!
标签: docker networking docker-compose