【发布时间】:2016-05-26 08:36:55
【问题描述】:
我想创建一个简单的 docker-compose 设置。我有一个由 nginx 服务的 JS 中实现的静态前端——这是一个容器。我还有一个 API 后端 Web 服务器 - 另一个容器。
我可以使用典型的端口转发单独运行两个容器,并通过docker-machine ip 提供的 IP 从我的主机 (Mac OS X) 访问。问题是前端正确地提供其静态内容,但 javascript 向错误地址发出 API 请求。前端应用程序需要配置后端的地址从主机的角度,因为主机是实际执行 API 调用的机器。
有没有办法将 docker 机器的 IP 地址传递到容器的环境中?或者其他一些可以实现这一点的网络配置。
【问题讨论】:
-
我浏览器中的 "localhost" 是我的 Mac。 docker-machine 是其他地址上的 linux VM。然后容器在该 VM 中运行,端口转发到 VM,但不转发到 Mac。这是关于它的文档页面:docs.docker.com/engine/installation/mac
-
你可以通过docker-machine通过SSH设置MAC和VM之间的port-forward。
-
IMO 最好将 nginx 设置为您使用的任何后端的反向代理。这样一来,您的 API URL 就可以保持相对于同一个域。
标签: javascript docker docker-compose