V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TimG
V2EX  ›  Docker

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

  •  
  •   TimG · 11 天前 via Android · 577 次点击

    近期入门 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 里,想问下这种情况大家都是怎么处理的?
    3 条回复    2025-02-10 16:37:46 +08:00
    sun2920989
        1
    sun2920989  
       11 天前
    在同一个 network 或者 link 然后就用容器名就行了 不需要写 ip
    shuangbiaog
        2
    shuangbiaog  
       11 天前
    同网络下用容器名互相访问,比如: http://nginx:80
    TimG
        3
    TimG  
    OP
       11 天前 via Android
    @sun2920989
    @shuangbiaog
    哦对,确实是这样,谢谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1433 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:16 · PVG 01:16 · LAX 09:16 · JFK 12:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.