container 内部如何 ping 通宿主机 ip?

167 天前
 f1ynnv2

之前用 docker 弄了一堆服务,端口分别映射到了宿主机的端口上,这样在内网可以用 http 直接访问。

然后用 nginx proxy manager ,把这些宿主机的 http 端口转成了 https 再暴露到公网上访问,跑了一年都没问题。

昨天也不知道为什么突然 https-http 不通了,查了一下发现是因为在 nginx proxy manger 这个 container 内部无法 ping 通宿主机 IP ,所以每个 upstream 都超时了。

我有点茫然了,容器是跑的默认网络模式,前面一年明明可以访问宿主机 ip 的,怎么突然不行了。要怎么才能在宿主机内部 ping 通宿主机 ip ?

试过 network_mode: host 居然也不行,不知道啥情况了。我贴一下原来的 docker compose file:

version: "3.8"
services:
  nginx-proxy-manager:
    image: jc21/nginx-proxy-manager:2.10.4
    restart: unless-stopped
    ports:
      - 9000:80
      - 443:443 # Public HTTPS Port
      - 8007:81 # Admin Web Port
    environment:
      DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
858 次点击
所在节点    Docker
4 条回复
ginakira
167 天前
Trim21
167 天前
network_mode: host 的情况下不能设置 ports
f1ynnv2
167 天前
@ginakira #1 非常感谢,原来这才是优雅的方案。我之前一直把宿主机 ip 固定,然后从容器内部连这个 ip ,也不知道为什么过去一年里一直正常使用。太感谢了!!
wxyrrcj
163 天前

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

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

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

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

© 2021 V2EX