繁体   English   中英

如何从另一个 Docker 容器连接 Postgres Docker 镜像

[英]How to connect a Postgres Docker image from another Docker container

我正在尝试在我们的机器上设置这个 Bullet Train API 服务器 我能够使用docker-compose up方法成功运行他们的 Python 服务器。

根据文档,它还需要数据库。 我更喜欢为 Postgres DB docker run --name local_postgres -d -P postgres使用 docker 镜像,它返回这个:

fb8b349961ff064e652d4f76402acd900c2fe4764475e3f487e84afd7407f70c

它不会返回说明 Postgres Docker 是否成功运行的成功消息。 它只是返回一些有点长的字符串,我认为它应该是 Postgres Docker 映像的标识符。

因为我需要将这个 Bullet Train API 服务器连接到这个 Dockerized 数据库 -

问题是如何找到这个 Postgres Docker 镜像的连接字符串?

诀窍是使用 docker-compose。 将您的应用程序图像作为一项服务放在那里,将您的 postgres 图像作为第二项服务放在那里。 然后还在堆栈中包含一个覆盖网络,并在您的每个服务中指定它。 之后,应用程序可以通过 docker 服务的名称“local_postgres”作为主机名访问数据库。

根据您的评论更新

确保定义 postgres 容器的 dockerfile 包含 EXPOSE 命令。

EXPOSE 5432

如果丢失,请添加它并重建容器。

启动容器并包含以下选项,这将在 localhost 上公开数据库端口。

docker run --name local_postgres -p 5432:5432 -d -P postgres 

通过键入检查端口是否真的暴露

docker ps | grep 'local_postgres'

您应该在输出中看到类似的内容。

端口 0.0.0.0:5432->5432/tcp

如果您看到此输出,则端口 5432 已在您的主机上成功公开。 因此,如果您的应用程序在 localhost 上运行,则可以通过 localhost:5432 访问数据库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM