Docker:如何连接到仅链接的服务

我使用的是使用VOLUME来存储数据的Postgres映像 ,不会将端口暴露给外部,但需要链接来连接。

我想知道是否有一种方法,我可以从主机使用需要我指定数据库的主机和端口的应用程序连接到这个?

您链接到的Postgres映像在Dockerfile定义中执行EXPOSE 5432

所以,如果你在Docker docker run使用了-P ,它会自动公开它,但是这会将它映射到你的Docker主机上的随机端口

你可能想要的是使用类似的东西

docker run -d -p :5432:5432 --name=postgres postgres

这将公开和映射容器端口5432到您的docker主机端口5432