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