Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何连接两个docker容器_Spring_Docker_Containers_Port_Grpc - Fatal编程技术网

Spring 如何连接两个docker容器

Spring 如何连接两个docker容器,spring,docker,containers,port,grpc,Spring,Docker,Containers,Port,Grpc,我有一个运行PostgreSQL的Docker容器,它运行良好,因为我可以从IntelliJ连接到它。在另一个容器中,我有一个基于GRPC的应用程序,每次我尝试运行它时,它都会立即崩溃,因为它需要连接到另一个容器中运行的Postgres数据库 我尝试发布两个容器的端口,但没有任何帮助。。。我甚至出现了一个错误,因为我试图将两个容器映射到相同的端口,因为应用程序在其运行的端口上连接到postgres,默认端口为5432(我没有更改此端口) 我想知道你如何连接这两个容器,以便我的应用程序可以访问数据

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

我尝试发布两个容器的端口,但没有任何帮助。。。我甚至出现了一个错误,因为我试图将两个容器映射到相同的端口,因为应用程序在其运行的端口上连接到postgres,默认端口为5432(我没有更改此端口)

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


提前感谢

使应用程序容器在端口5432上运行并将其公开给任何端口,使postgres容器在任何端口上运行并公开端口5432

docker run -p xxx:5432 yourapp
docker run -p 5432:yyy postgres 
需要确保postgres在港口集装箱内运行。快速回答:

你不能


最好的方法是让两个容器都在主机网络上运行(
--net host
),或者一个容器在另一个容器网络上运行(
--net container:
)。

需要更多信息。容器是如何启动的(哪些设置/选项)?连接到PostgreSQL的相关代码是什么(连接字符串是什么)?实际错误是什么(或者如果容器日志没有输出,“崩溃”在本例中是什么意思)?还请提供任何相关日志和容器输出。我如何确保postgres正在任何端口上侦听?