加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:40:56 所属栏目:安全 来源:网络整理
导读:我有一个完全在我的MacBook上本地运行的Web应用程序. Webapp有一个前端(Angular / Javascript)和一个后端(Python / Django),它实现了RESTful API. 我对后端进行了Docker化,以便它在Docker容器中完全自包含并暴露端口8000.我将此端口本地映射到4026. 现在我需

我有一个完全在我的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的网络服务器,这些页面访问后端服务.如果这是准确的,那么在这种情况下你并不需要容器到容器的通信……因为连接来自客户端系统,所以都需要暴露给主机.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读