在没有与服务器共享端口的docker容器中访问postgress数据库

在没有与服务器共享端口的docker容器中访问postgress数据库

我在名为 dbDocker 的 Docker 容器中安装了 postgress 数据库。此容器未使用任何服务器端口,并且容器的 postgres 5342 端口仅对同一虚拟网络中的容器可见。我想创建另一个 docker 容器,以允许网络外的用户访问该数据库。可以这样做吗?因此,这个新容器将显示为具有数据库的容器。

谢谢

答案1

是的,你问的这个软件叫做代理。

你可以有一个容器,它暴露一个端口。当有人连接时,它会连接到其他地方,并以中间人的身份来回传递数据。

事实上,当你在 docker 中暴露任何端口时(比如-p 3306:3306),docker 内部都会运行一个代理。这是一个非常简单的代理,没有太多的访问粒度。

适合您场景的更高级代理的一个示例是容器化的 haproxy,配置为mode tcp(因为 postgress 与 不兼容mode http)。

另一个例子是可怕的 SOCKS 代理。

如果我理解错了,你只需要简单地暴露 127.0.0.1 然后看看这个答案

相关内容