Postgresql Docker postgres从*内部*Docker容器到主机的连接';s在Mac上的postgres localhost实例

Postgresql Docker postgres从*内部*Docker容器到主机的连接';s在Mac上的postgres localhost实例,postgresql,macos,docker,Postgresql,Macos,Docker,关于这一点的所有问题似乎都指向一个相反的案例,即创建一个postgres容器并从Mac主机连接它。但我正试图做相反的事,却没有成功。我在我的Mac主机上运行localhost,尽管设置了端口标志,但我无法在容器中获取与localhost postgres对话的代码(与远程主机postgres对话很好) 然后在docker内部: telnet 0.0.0.0 5432 Trying 0.0.0.0... telnet: Unable to connect to remote host: Conne

关于这一点的所有问题似乎都指向一个相反的案例,即创建一个postgres容器并从Mac主机连接它。但我正试图做相反的事,却没有成功。我在我的Mac主机上运行localhost,尽管设置了端口标志,但我无法在容器中获取与localhost postgres对话的代码(与远程主机postgres对话很好)

然后在docker内部:

telnet 0.0.0.0 5432
Trying 0.0.0.0...
telnet: Unable to connect to remote host: Connection refused
或telnet 127.0.0.1或localhost。连接被拒绝


编辑:我还尝试了使用flag
--network=“host”
,除了断开本地主机5000上容器的入站连接外,没有任何更改。

如果您使用docker for mac,则可以使用解析为主机使用的内部IP地址的
host.docker.internal
特殊DNS名称


您还可以在docker run命令中使用
--network=“host”
在主机网络中运行容器。然后容器内的
localhost
接口将与主机在主机网络中运行时的
localhost
接口相同。因此,您应该能够使用
localhost:5432
连接到postgresql。您可以删除
-p
选项,因为它在使用
--network=“host”
运行时无效


docker run-it--network=host yard stats

尝试远程登录docker网桥的IP在大多数情况下,IP是172.17.0.1,因此:“telnet 172.17.0.1 5432”查找docker网桥的IP地址类型:“IP a | grep docker 0”我尝试了,没有骰子。但是谢谢你。嘿
主机。docker。内部
工作!我只需要告诉postgres接受dns,因为它似乎对postgres而不是telnet被阻止了。那个
network=“host”
标志不起作用。确切地说,我得到了这个错误:
回溯(最近一次调用):文件“”,第1行,在文件“/usr/local/lib/python3.7/site packages/psycopg2/uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupsycopg2.OperationalError:致命:角色“root”不存在
有什么想法吗?我想出来了——我在本地主机上使用了一个空白用户名!
telnet 0.0.0.0 5432
Trying 0.0.0.0...
telnet: Unable to connect to remote host: Connection refused