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

2016-12-15 17:00:40 +08:00
 w55exp88lore123

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

我用 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

20025 次点击
所在节点    问与答
3 条回复
gamexg
2016-12-15 18:33:56 +08:00
看标题进来的,容器是可以直接访问主机 ip 的。
然后对于主机 ip 可能变更的问题,直接给主机加个私有 ip 比较省事。
knarfeh
2017-03-28 16:52:40 +08:00
ip route|awk '/default/ { print $3 }'
hheedat
2018-02-28 19:37:07 +08:00
同问,找到解决办法了吗

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

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

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

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

© 2021 V2EX