如果 docker 容器 ip 和外部网络 ip 相同,那么如果会做 telnet,哪一个会得到响应?任何想法



如果docker容器IP和外部网络IP相同,那么如果它会做telnet,哪一个会得到响应?

我知道下面的配置是最糟糕的配置,但我想知道行为。

给你一个例子

我的应用程序正在本地主机中运行,该主机正在与 docker 容器内的数据库通信。 我们提供的自定义 IP - (IP : 10.0.0.1, 端口 :5432(

另一个在容器外部运行的数据库,假设容器(IP和端口(和主机(IP和端口(是相同的。 主机 IP : 10.0.0.1, 主机端口 :5432

哪一个将通过应用程序主机/容器数据库或两个数据库连接?

如果 telnet 10.0.0.1 5432 会这样做?哪一个会回应,为什么?

在图表中解释

我认为这是不可能的,即使您对容器和主机具有相同的 IP(以某种方式(,您也无法将容器端口 5432 映射到主机端口 5432,因为该端口上已经有一个应用程序(主机 dB(在运行。

考虑这样一种情况:您也对容器使用主机网络,可能通过使用--network host。这样,容器 IP 将与主机 IP 相同。容器将使用主机的 5432 端口来运行 dB。现在,如果您尝试使用相同的端口在主机上启动 dB,您应该会收到端口已被使用的错误。

相关内容

最新更新