gpt4 book ai didi

macos - Docker 需要访问主机的 Postgres 数据库

转载 作者:行者123 更新时间:2023-11-29 13:48:23 25 4
gpt4 key购买 nike

我有一个在 Docker 容器中运行的 Flask 应用程序,我可以使用以下命令运行它。

docker run -e DB_HOST=<...> -e DB_PORT=<...> -e DB_NAME=<...> -e DB_USER=<...> -e DB_PASSWORD=<...> -p 8080:8080 <tag name>

之前数据库在AWS上,现在数据库在MAC笔记本电脑上运行。那么来自 docker 容器的 Flask 应用程序如何连接到主机 Postgres 的数据库呢?我的 DB_HOST 应该是什么?

最佳答案

出于安全原因,Postgres 服务器很难连接到它。默认情况下,您可以从本地主机和 127.0.0.1 连接到服务器。

这在 Docker 中不起作用,因为本地主机指的是正在运行的 docker 容器而不是您的笔记本电脑。

您必须从 Docker 连接到笔记本电脑的 IP 地址。您可以在 Mac 上的 System Preference > Network 中找到笔记本电脑的 IP或者你可以使用 ifconfig | grep inet.

您需要修改 2 个 Postgres 配置文件:postgresql.confpg_hba.conf

对于文件:/usr/local/var/postgres/postgresql.conf

添加此行以收听所有内容:

listen_addresses = '*' # 要监听的 IP 地址;

或添加您特定的笔记本电脑 IP。

对于文件 /usr/local/var/postgres/pg_hba.conf 添加一行这样的 IP:

host all all 192.168.1.3/32 md5

完成后重新启动 Postgres 服务器。

关于macos - Docker 需要访问主机的 Postgres 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44707188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com