docker 如何把前后端两个容器连接起来?

207 天前
 TimG

近期入门 docker ,看了几篇文章,对照 gitea 开源项目给自己的项目写 dockerfile 。发现有一点不一样的地方:我的前端项目打包后托管在 Nginx ,后端用 Python uvicorn 服务,于是我做了两个 image ,一个基于 Nginx ,另一个基于 Python ,在同一个电脑运行,但是这样连接时就犯难了,我想了几个方案麻烦问下各位一般都用哪种?

  1. 都使用 host mode ,Nginx 配置文件转发后端的时候固定为 127.0.0.1 。不过这样在托管 container 时好像就不能重定向 port 了。
  2. 建立 network 桥,这样是能互通了,但是后端容器的 IP 不固定,需要在 docker-compose 里写 external_links ,但是怎么再把这个地址写到前端容器的 nginx.config 里,又感觉很麻烦,潜意识觉得绕了路子。
  3. 前后端打包到一个 image 里......也感觉不太对,生成 image 又绕了路子 思来想去好像都不太对,开源项目又大部分是在一个 image 里,想问下这种情况大家都是怎么处理的?
1396 次点击
所在节点    Docker
3 条回复
sun2920989
207 天前
在同一个 network 或者 link 然后就用容器名就行了 不需要写 ip
shuangbiaog
207 天前
同网络下用容器名互相访问,比如: http://nginx:80
TimG
207 天前
@sun2920989
@shuangbiaog
哦对,确实是这样,谢谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1110376

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX