如何在我的本地主机上运行时让Docker容器相互通信?
我有一个完全在我的MacBook上本地运行的Web应用程序. Webapp有一个前端(Angular / Javascript)和一个后端(Python / Django),它实现了RESTful API. 我对后端进行了Docker化,以便它在Docker容器中完全自包含并暴露端口8000.我将此端口本地映射到4026. 现在我需要Dockerize前端.但是,如果我在本地主机上运行这两个docker容器,我怎样才能让FE向BE发送HTTP请求? FE容器不会知道它外面存在的任何东西.对? 这就是我运行FE的方式:
请提供参考资料,说明如何实现这一目标. 最佳答案
这样做的方法是今天Docker Networking,另一个答案简要提到.
简短版本是您可以运行docker network ls来获取您的网络列表.默认情况下,您应该有一个名为bridge.您可以创建一个新的,也可以在创建容器时通过–net = bridge来使用它.从那里,使用相同网络启动的容器可以通过暴露的端口相互通信. 如果您按照上面提到的那样使用Docker Compose,那么当您使用与项目文件夹匹配的名称和附加的_default运行docker-compose时,它将为您创建桥接网络. Compose文件中定义的每个图像都将自动在此网络中启动. 尽管如此,我猜你的前端是一个只提供HTML / JS / CSS的网络服务器,这些页面访问后端服务.如果这是准确的,那么在这种情况下你并不需要容器到容器的通信……因为连接来自客户端系统,所以都需要暴露给主机. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |