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

近期入门 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 里,想问下这种情况大家都是怎么处理的?