[英]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 镜像,它返回这个:
它不会返回说明 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.