postgresql - 从 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 肯定在我的计算机上运行,我可以从本地应用程序中查询它。我错过了什么?
解决方案
这不适用于 Docker v18.03 及更高版本
答案已经存在 -从 Docker 容器内部,我如何连接到机器的本地主机?
这个问题与 mysql 设置有关,但它也适用于您的情况。
对于 Docker v18.03 及以上版本
用来host.docker.internal
指代主机。
https://docs.docker.com/docker-for-windows/networking/#i-cannot-ping-my-containers
推荐阅读
- git - Ubuntu 20 上的 SSH 密钥不适用于任何 Git Repo
- azure-devops - Azure 管道,多阶段 YAML 管道,在构建服务器上使用相同的工作目录。怎么不腐败
- r - 在带有表格的r中使用“for”循环
- fullcalendar - 单击事件时出现 FullCallendar 刷新页面的问题
- excel - Excel VBA:对于每一行,生成新工作表并将行复制到新工作表
- python - 如何在表格中添加自动编号列?
- powerbi - 为什么我的条件格式在 PowerBI 中无法正常工作?
- mysql - MySQL 通过灵活的列数对未知数量的 ID 行求和和分组
- wix - 使用 Wix 工具集,MajorUpgrade 是否可以设置最低版本
- linux - 如何使用 'sed' 从 txt 读取一行?