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

怎么让 docker 同时对两块网卡上不同的网段提供服务

  •  
  •   SOSdanOffical · 225 天前 · 921 次点击
    这是一个创建于 225 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • HW:PC
    • OS:Linuxmint 21
    • 网络环境:
      • 有线网卡 192.168.30.78
      • 无线网卡 192.168.11.11

    我用 docker 配置了一个容器,环境变量文件中写的 APP_URL 是192.168.30.78:8000,容器 80 端口映射宿主 8000 端口
    现在我用 192.168.30.0 网段的主机可以访问192.168.30.78:8000获得服务
    但是用同 192.168.11.0 网段的主机访问192.168.11.11:8000则无法获得服务,观察浏览器地址栏,url 会跳转到 192.168.30.78:8000 因而连接失败

    我的诉求是这个容器在 30 和 11 两个网段中都能为同一网段的主机提供服务,我该怎么做呢?
    如果可能的话,简单点比较好,能给一个大体的思路就行

    4 条回复    2024-07-23 10:41:37 +08:00
    jifengg
        1
    jifengg  
       224 天前
    "docker 配置了一个容器,环境变量文件中写的 APP_URL 是 192.168.30.78:8000"

    看样子网络没问题,那就从你这个“容器”的配置文件看,APP_URL 改成 “/”、“./”、“空”,试试。
    另外,观察“url 会跳转到 192.168.30.78:8000”是 宿主机 8000 端口监听程序跳转的,还是你这个 app 跳转的
    SOSdanOffical
        2
    SOSdanOffical  
    OP
       224 天前
    @jifengg 看起来留空好像是不行的
    如果在环境变量文件中留空,会有如下提示(使用 localhost:8000 访问):

    Uh oh! Snipe-IT thinks your URL is /setup, but your real URL is http://localhost:8000/setup Please update your APP_URL settings in your .env file

    >观察“url 会跳转到 192.168.30.78:8000”是 宿主机 8000 端口监听程序跳转的,还是你这个 app 跳转的
    这个我可能得研究一下再告诉您,谢谢哥
    SOSdanOffical
        3
    SOSdanOffical  
    OP
       224 天前
    @jifengg 如果我把 APP_URL 改成 http://localhost:8000 ,提示则是这样的

    Uh oh! Snipe-IT thinks your URL is http://localhost:8000/setup, but your real URL is http://192.168.2.26:8000/setup Please update your APP_URL settings in your .env file

    这是在浏览器中使用 192.168.2.26:8000 访问的情况,如果使用宿主机直接开 localhost:8000 是一切正常的

    阿对了,我现在在家了,所以网段不一样
    FollowHYH
        4
    FollowHYH  
       133 天前 via Android
    可以在容器外设置一个转发
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3730 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:52 · PVG 08:52 · LAX 16:52 · JFK 19:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.