【问题标题】:Docker: How do I access my server's public IP from within a container?Docker:如何从容器内访问我的服务器的公共 IP?
【发布时间】:2019-06-18 19:45:46
【问题描述】:

我在 linux 服务器上运行不同的应用程序作为 docker 容器。我可以使用 SSL 访问 docker 容器。我使用的反向代理是traefik 配置为代理子目录而不是子域。

这些是我的容器:

应用程序 A - 可通过 https://abc.xyz/a

访问

应用程序 B - 可通过 https://abc.xyz/b

访问

从我的浏览器访问它们时,这两个应用程序都已启动并正常运行。

现在我需要在 Application A 中嵌入 Application B。我知道我可以只使用容器的内部 IP(因为它们在同一个网络上),但是,嵌入式应用程序必须可以被 Application A 以及我的本地浏览器访问 - 所以我需要使用面向公众的 IP/URL。

现在的问题是我根本无法从 Application A 访问 https://abc.xyz/b。以下所有命令均在 Application A docker 容器内执行。

Ping 工作正常:

$ ping abc.xyz
64 bytes from 150.150.150.150: seq=0 ttl=64 time=0.204 ms

所以 DNS 工作正常。

但是wget 显示:

$ wget https://abc.xyz/b
Connecting to abc.xyz (150.150.150.150)
(Nothing happens)

我根本无法弄清楚问题出在哪里。是在 traefik 还是这是 docker 限制?

【问题讨论】:

    标签: docker networking docker-compose traefik


    【解决方案1】:

    经过更多研究,我发现它与 dockertraefik 根本无关。主机 linux 启用了防火墙 (ufw),它阻止来自 docker 容器的请求,因为它没有正确配置。

    我现在允许从容器进行访问,并且可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 2021-12-28
      • 1970-01-01
      相关资源
      最近更新 更多