我有一台带有docker的服务器,该服务器托管2个docker容器。这些容器正在运行Spring Boot 2应用程序。在一个容器中,我想连接到另一个容器,但遇到超时问题。原因与iptables有关。当我将输入策略设置为ACCEPT时,一切正常,但是当我将INPUT策略设置为drop时,会出现超时异常。
容器1试图通过外部域名连接到容器2。因此,容器1尝试并连接到subdomain.domain.com。我相信这意味着docker最终将通过eth0进行连接,而不是通过docker内部进行连接。这是容器无法连接到其他容器的原因,我必须将INPUT策略设置为ACCEPT吗?
如果使用“外部”域名,如何设置iptables以便Docker容器可以连接到另一个Docker容器?
答案 0 :(得分:2)
您还可以将这两个容器作为服务堆栈的一部分,或者链接这些容器,甚至可能创建一个单独的网络,然后链接这些容器,从而隔离这两个容器。
此link提供了一个简单的示例
答案 1 :(得分:1)
通常docker旨在帮助您构建不需要iptables的所需基础架构。
尝试将Docker容器绑定到特定端口。
您也可以尝试使用
docker compose方法(具有或不具有群体模式)
nginx作为代理,并将对特定域的请求转发到绑定了docker容器的本地IP
希望这会有所帮助。