Spring 如何连接两个docker容器
我有一个运行PostgreSQL的Docker容器,它运行良好,因为我可以从IntelliJ连接到它。在另一个容器中,我有一个基于GRPC的应用程序,每次我尝试运行它时,它都会立即崩溃,因为它需要连接到另一个容器中运行的Postgres数据库 我尝试发布两个容器的端口,但没有任何帮助。。。我甚至出现了一个错误,因为我试图将两个容器映射到相同的端口,因为应用程序在其运行的端口上连接到postgres,默认端口为5432(我没有更改此端口) 我想知道你如何连接这两个容器,以便我的应用程序可以访问数据库,我可以测试GRPC请求Spring 如何连接两个docker容器,spring,docker,containers,port,grpc,Spring,Docker,Containers,Port,Grpc,我有一个运行PostgreSQL的Docker容器,它运行良好,因为我可以从IntelliJ连接到它。在另一个容器中,我有一个基于GRPC的应用程序,每次我尝试运行它时,它都会立即崩溃,因为它需要连接到另一个容器中运行的Postgres数据库 我尝试发布两个容器的端口,但没有任何帮助。。。我甚至出现了一个错误,因为我试图将两个容器映射到相同的端口,因为应用程序在其运行的端口上连接到postgres,默认端口为5432(我没有更改此端口) 我想知道你如何连接这两个容器,以便我的应用程序可以访问数据
提前感谢使应用程序容器在端口5432上运行并将其公开给任何端口,使postgres容器在任何端口上运行并公开端口5432
docker run -p xxx:5432 yourapp
docker run -p 5432:yyy postgres
需要确保postgres在港口集装箱内运行。快速回答:
你不能
最好的方法是让两个容器都在主机网络上运行(
--net host
),或者一个容器在另一个容器网络上运行(--net container:
)。需要更多信息。容器是如何启动的(哪些设置/选项)?连接到PostgreSQL的相关代码是什么(连接字符串是什么)?实际错误是什么(或者如果容器日志没有输出,“崩溃”在本例中是什么意思)?还请提供任何相关日志和容器输出。我如何确保postgres正在任何端口上侦听?