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

问题描述 投票:1回答:1

我正在尝试在我们的机器上设置this Bullet Train API server。我可以使用docker-compose up方法成功运行其Python服务器。

根据文档,它也需要数据库。我更喜欢为Postgres DB docker run --name local_postgres -d -P postgres使用docker映像,它返回以下内容:

fb8b349961ff064e652d4f76402acd900c2fe4764475e3f487e84afd7407f70c

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

因为我需要将this Bullet Train API server连接到此Dockerized数据库-

问题是如何找到此Postgres Docker映像的连接字符串?

python postgresql docker connection-string
1个回答
2
投票

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

根据您的评论更新

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

EXPOSE 5432

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

启动容器并包括以下选项,它将在本地主机上公开数据库端口。

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

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

docker ps | grep 'local_postgres'

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

PORTS 5432 / tcp

如果看到此输出,则端口5432已成功暴露在主机上。因此,如果您的应用程序在localhost上运行,则可以通过localhost:5432

访问数据库。
© www.soinside.com 2019 - 2024. All rights reserved.