V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
w55exp88lore123
V2EX  ›  问与答

docker 容器如何访问宿主机的端口?

  •  
  •   w55exp88lore123 · 2016-12-15 17:00:40 +08:00 · 20003 次点击
    这是一个创建于 2699 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上搜了好几天,没有搞定

    我用 docker-compose 管理 docker 的

    因为用了 shipyard ,这个东西 运行在宿主机上的,不是由我的 docker-compose 管理的,所以 docker-compose 里的 nginx 没有办法代理,也就没有办法启用 https

    网上说,让 nginx 代理 127.0.0.1 ,但这样不行, 也有人说代理 docker0 ,但在 nginx 这个容器里,不存在这个主机

    后来搜到,有个 extra_hosts 可以修改 nginx 容器的 hosts 文件,但是 宿主机的 ip 可能是不固定的,我没有办法写死

    那么,问题来了,究竟如何才可以解决这个棘手的问题呢? 有朋友知道吗


    up--

    现在有了一个思路, docker-compose 构建的时候执行命令,获取物理机ip 然后 添加到nginx容器的hosts里

    现在知道可以通过ip addr show docker0 获取一大段信息,但是还在看,怎么提取出单独的那个ip

    3 条回复    2018-02-28 19:37:07 +08:00
    gamexg
        1
    gamexg  
       2016-12-15 18:33:56 +08:00   ❤️ 1
    看标题进来的,容器是可以直接访问主机 ip 的。
    然后对于主机 ip 可能变更的问题,直接给主机加个私有 ip 比较省事。
    knarfeh
        2
    knarfeh  
       2017-03-28 16:52:40 +08:00
    ip route|awk '/default/ { print $3 }'
    hheedat
        3
    hheedat  
       2018-02-28 19:37:07 +08:00
    同问,找到解决办法了吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3159 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:10 · PVG 22:10 · LAX 07:10 · JFK 10:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.