【发布时间】:2016-07-08 14:57:07
【问题描述】:
我正在尝试为我的项目设置开发环境。
我有一个容器 (ms1) 应该放在他自己的网络中(在我的例子中是“服务”),还有一个容器(apigateway)应该访问该网络,同时将 http 端口暴露给主机的网络。
理想情况下,我的 docker compose 文件应如下所示:
version: '2'
services:
ms1:
expose:
- "13010"
networks:
services:
aliases:
- ms1
apigateway:
networks:
services:
aliases:
- api
network_mode: "host"
networks:
services:
docker-compose 不允许同时使用 network_mode 和 networks。
我还有其他选择吗?
目前我正在使用这个:
apigateway:
networks:
services:
aliases:
- api
ports:
- "127.0.0.1:10000:13010"
然后 apigateway 容器监听 0.0.0.0:13010。它可以工作,但速度很慢,如果主机的 Internet 连接中断,它就会死机。
另外,我计划将来在 docker 上使用 vagrant,它允许以干净的方式解决吗?
【问题讨论】:
-
你可以只使用来自apigateway的ms1 IP地址吗?请参阅stackoverflow.com/questions/27937185/… 如何使用 docker 1.10.1
-
我正在尝试做同样的事情,但要解决不同的问题(也许)。就我而言,我创建了一个在两个服务之间共享的网络,但由于某种原因,其中一个服务没有连接到互联网(我认为原因是它不是主机网络的一部分)。但是,问题在于它无法解析 URL,因为无法访问 DNS。我使用 IP 地址进行了快速修复,但会彻底查看它以将请求转发到正确的 DNS。
标签: networking docker vagrant docker-compose devops