首页 > 解决方案 > 从 Debian Docker 容器连接到 Windows Postgres

问题描述

我在 Windows 10 计算机上运行 Postgres,我想从 Docker 容器连接到它。我已经遵循了许多来源的说明,并且事情应该可以正常工作,但事实并非如此。

用于创建 Docker 容器的命令行:

docker run --rm -d --network=host --name mycontainer myimage

postgresql.conf

listen_addresses = '*'  

pg_hba.conf

host    all             all             172.17.0.0/16           trust

在容器的 bash shell 中,我运行:

psql -h 127.0.0.1

我得到了错误:

psql:无法连接到服务器:连接被拒绝

服务器是否在主机“127.0.0.1”上运行并接受端口 5432 上的 TCP/IP 连接?

不用说,Postgres 肯定在我的计算机上运行,​​我可以从本地应用程序中查询它。我错过了什么?

标签: postgresqldockerdocker-for-windows

解决方案


这不适用于 Docker v18.03 及更高版本
答案已经存在 -从 Docker 容器内部,我如何连接到机器的本地主机?

这个问题与 mysql 设置有关,但它也适用于您的情况。

对于 Docker v18.03 及以上版本

用来host.docker.internal指代主机。

https://docs.docker.com/docker-for-windows/networking/#i-cannot-ping-my-containers


推荐阅读