我正在为docker使用默认的桥接网络(是的,我对docker还是比较陌生的)。我有两个Docker容器。
第一个容器在端口12345上提供服务。创建此容器时,我没有指定--publish选项,因为我不想将此端口暴露给外界。
第二个容器需要使用第一个容器中的服务。但是,在此第二个容器中运行的应用程序已进行硬编码以访问位于127.0.0.1:12345的服务。显然,第二个容器的本地主机与第一个容器不同。有没有一种方法可以使Docker网络连接,认为第二个容器中的localhost实际上应该连接到第一个容器中的端口,而又不暴露任何外部环境?
答案 0 :(得分:1)
选项N :(此方法可行,但可能不是最佳解决方案)
可以强制这种行为的一种方式是通过注入附加服务以绑定到应用程序容器上的端口并将其向外重定向。
socat TCP-LISTEN:12345,fork TCP:172.18.0.2:12345
在这里进行快速测试,我能够确认127.0.0.1:12345被视为远程12345
注意事项: