如何连接两个 docker 容器

How to connect two docker containers

我有一个 Docker 容器 运行ning PostgreSQL,它 运行 很好,因为我可以从 IntelliJ 连接到它。在另一个容器中,我有一个基于 GRPC 的应用程序,每次我尝试 运行 它都会立即崩溃,因为它需要连接到另一个容器中的 Postgres 数据库 运行ning。

我已经尝试发布两个容器的端口,但没有任何帮助...我什至遇到错误,因为我试图将两个容器映射到相同的端口,因为应用程序连接到端口上的 postgres 运行s 默认为 5432(我没有更改)。

我想知道您如何连接这两个容器,以便我的应用程序可以访问数据库并且我可以测试 GRPC 请求。

提前致谢

在端口 5432 上制作应用程序容器 运行 并将其公开到任何端口并在任何端口上制作 postgres 容器 运行 并公开端口 5432

docker run -p xxx:5432 yourapp
docker run -p 5432:yyy postgres 

需要确保 postgres 运行在容器内 yyy

端口

快速回答:

你不能。

最好的方法是在主机网络 (--net host) 上同时拥有两个容器 运行,或者在另一个容器网络 (--net container:<containerID>) 上拥有一个容器 运行。