Docker容器无法在docker0外部连接

时间:2019-01-01 15:09:26

标签: docker iptables

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

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

如果使用“外部”域名,如何设置iptables以便Docker容器可以连接到另一个Docker容器?

2 个答案:

答案 0 :(得分:2)

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

link提供了一个简单的示例

答案 1 :(得分:1)

通常docker旨在帮助您构建不需要iptables的所需基础架构。

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

您也可以尝试使用

  1. docker compose方法(具有或不具有群体模式)

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

希望这会有所帮助。