【问题标题】:How to connect a Postgres Docker image from another Docker container如何从另一个 Docker 容器连接 Postgres Docker 映像
【发布时间】:2020-03-04 08:04:03
【问题描述】:

我正在尝试在我们的机器上设置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 镜像的连接字符串?

【问题讨论】:

    标签: python postgresql docker connection-string


    【解决方案1】:

    诀窍是使用 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 访问数据库

    【讨论】:

    • 我正在寻找一种从终端连接到在 Docker 内运行的 Postgres 的方法。不需要来自另一个 Docker 网络
    猜你喜欢
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    • 2020-01-30
    • 2016-07-20
    • 2019-06-13
    • 2017-10-15
    • 1970-01-01
    • 2019-03-26
    相关资源
    最近更新 更多