【问题标题】:How to connect two docker containers如何连接两个 docker 容器
【发布时间】:2020-05-05 15:58:32
【问题描述】:

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

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

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

提前致谢

【问题讨论】:

  • 需要更多信息。容器是如何启动的(什么设置/选项)?连接 PostgreSQL 的相关代码是什么(连接字符串是什么)?实际错误是什么(或者如果容器日志没有输出,在这种情况下“崩溃”是什么意思)?还请提供任何相关的日志和容器输出。

标签: spring docker containers port grpc


【解决方案1】:

让app容器运行在5432端口,并暴露给任意端口,让postgres容器运行在任意端口,暴露5432端口

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

需要确保 postgres 在端口 yyy

的容器内运行

【讨论】:

  • 我将如何确保 postgres 正在侦听任何端口?
【解决方案2】:

快速回答:

你不能。

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

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 2021-11-24
    • 2021-01-26
    • 2018-06-16
    • 2021-09-22
    • 2015-05-22
    • 2020-01-06
    • 1970-01-01
    相关资源
    最近更新 更多