关于SO的所有问题似乎都与创建postgres 容器并将其从Mac主机连接起来的情况相反。但是我正尝试相反,没有成功。我的Mac主机上运行了localhost,尽管设置了端口标志,但我仍无法在容器内获取与我的localhost postgres对话的代码(与远程主机postgres的对话就可以了)。
docker run -it -p 5000:5000 -p 5432:5432 yard-stats
然后在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。连接被拒绝。
编辑:我还尝试使用标志--network="host"
,该标志除了中断与localhost:5000上的容器的入站连接之外,什么也没有改变。
答案 0 :(得分:1)
如果在Mac上使用docker,则可以使用host.docker.internal
特殊DNS名称,该名称解析为主机使用的内部IP地址。
您还可以在您的docker run命令中使用--network="host"
在主机网络中运行容器。然后,在主机网络中运行时,容器内的localhost
接口将与主机的localhost
接口相同。因此,您应该能够使用localhost:5432
连接到postgresql。您可以删除-p
选项,因为它在与--network="host"
一起运行时不起作用。
docker run -it --network=host yard-stats