我有一个运行PostgreSQL的Docker容器,它运行良好,因为我可以从IntelliJ连接到它。在另一个容器中,我有一个基于GRPC的应用程序,该应用程序每次尝试运行时都会立即崩溃,因为它需要连接到在另一个容器中运行的Postgres数据库。
我尝试发布两个容器的端口,但无济于事...我什至遇到错误,因为我尝试将两个容器映射到相同的端口,因为该应用程序在其运行的端口上连接到postgres默认为5432(我没有更改)。
我想知道如何连接两个容器,以便我的应用程序可以访问数据库并测试GRPC请求。
预先感谢
答案 0 :(得分:1)
使应用程序容器在端口5432上运行并将其暴露于任何端口,并使postgres容器在任何端口上运行并暴露5543端口
docker run -p xxx:5432 yourapp
docker run -p 5432:yyy postgres
需要确保postgres在端口 yyy
的容器内运行答案 1 :(得分:0)
快速解答:
你不能。
最好的方法是使两个容器都在主机网络(EmptyOutputBody
)上运行,或者使一个容器在另一个容器网络(--net host
)上运行。