如何在我的本地主机上运行时让Docker容器相互通信?

前端之家收集整理的这篇文章主要介绍了如何在我的本地主机上运行时让Docker容器相互通信?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个完全在我的MacBook上本地运行的Web应用程序.

Webapp有一个前端(Angular / Javascript)和一个后端(Python / Django),它实现了RESTful API.

我对后端进行了Docker化,以便它在Docker容器中完全自包含并暴露端口8000.我将此端口本地映射到4026.

现在我需要Dockerize前端.但是,如果我在本地主机上运行这两个docker容器,我怎样才能让FE向BE发送HTTP请求? FE容器不会知道它外面存在的任何东西.对?

这就是我运行FE的方式:

$http-server
Starting up http-server,serving ./
Available on:
  http://127.0.0.1:8080
  http://192.168.1.16:8080
Hit CTRL-C to stop the server

请提供参考资料,说明如何实现这一目标.

最佳答案
这样做的方法是今天Docker Networking,另一个答案简要提到.

简短版本是您可以运行docker network ls来获取您的网络列表.默认情况下,您应该有一个名为bridge.您可以创建一个新的,也可以在创建容器时通过–net = bridge来使用它.从那里,使用相同网络启动的容器可以通过暴露的端口相互通信.

如果您按照上面提到的那样使用Docker Compose,那么当您使用与项目文件夹匹配的名称和附加的_default运行docker-compose时,它将为您创建桥接网络. Compose文件中定义的每个图像都将自动在此网络中启动.

尽管如此,我猜你的前端是一个只提供HTML / JS / CSS的网络服务器,这些页面访问后端服务.如果这是准确的,那么在这种情况下你并不需要容器到容器的通信……因为连接来自客户端系统,所以都需要暴露给主机.

猜你在找的Docker相关文章