我正在尝试在我们的机器上设置this Bullet Train API server。我可以使用docker-compose up
方法成功运行其Python服务器。
根据文档,它也需要数据库。我更喜欢为Postgres DB docker run --name local_postgres -d -P postgres
使用docker映像,它返回以下内容:
它不会返回成功消息,说明Postgres Docker是否成功运行。它只是返回一些有点长的字符串,我认为这应该是Postgres Docker映像的标识符。
因为我需要将this Bullet Train API server连接到此Dockerized数据库-
问题是如何找到此Postgres Docker映像的连接字符串?
诀窍是使用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
访问数据库。