Docker 容器无法在 docker0 外部连接

Docker container cant connect outside docker0

我有一个服务器 docker 托管 2 docker 个容器。这些容器是 运行 一个 Spring boot 2 应用程序。在 1 个容器中,我想连接到另一个容器,但遇到超时问题。原因与 iptables 有关。当我将输入策略设置为 ACCEPT 时,一切正常,但是当我将 INPUT 策略设置为 drop 时,出现超时异常。

容器1正在尝试通过外部域名连接到容器2。因此容器 1 尝试并连接到 subdomain.domain.com。我相信这意味着 docker 最终通过 eth0 而不是通过 docker 内部连接。这是容器无法连接到另一个容器的原因,我必须将 INPUT 策略设置为 ACCEPT 吗?

如果使用 "outside" 域名,我如何设置 iptables 以便 docker 容器可以连接到另一个 docker 容器?

通常 docker 旨在帮助您在没有 iptables 的情况下构建所需的基础架构。

尝试将 docker 容器绑定到特定端口。

你也可以尝试使用

  1. docker 组合方法(有或没有群模式)

  2. nginx 作为代理并将对特定域的请求转发到绑定了 docker 容器的本地 ip

希望这对您有所帮助。

您还可以将这两个容器作为服务堆栈的一部分,然后 link 容器或者甚至可能创建一个单独的网络,然后 link 容器从而隔离这两个容器。

这个link提供了一个简单的例子