gpt4 book ai didi

macos - 无法连接 Docker + PostgreSQL 9.3

转载 作者:行者123 更新时间:2023-11-29 12:58:36 25 4
gpt4 key购买 nike

谁能帮我解决这个问题?我正在使用 Mac OS X El Capitan + Docker。

我的图像的 Dockerfile:

https://gist.github.com/andrealmar/bce56f7d8450990333703aa5c4ac8d61

我运行我的容器:

docker run andrealmar/postgresql:9.3

docker ps 显示我的容器正在运行,我执行 docker inspect 以查看容器具有哪个 IP 地址:

docker inspect 8e65f4dec821 | grep IPAddress

输出:

"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",

当我尝试使用 psql 连接时:

psql -h 172.17.0.2 -U docker docker

它给我一个超时错误。

psql: could not connect to server: Operation timed out
Is the server running on host "172.17.0.2" and accepting
TCP/IP connections on port 5432?

我也试过这个命令:

psql -h 172.17.0.2 -p 5432 -d docker -U docker -W 

但是同样的超时错误发生了....

有人知道我在这里缺少什么吗?

干杯,

最佳答案

您正在尝试连接到容器的“内部”(容器-容器)网络。在 OS X 上运行时,docker 守护进程(和容器)在虚拟机中运行。

如果你想从你的 OS X 机器访问 PostgreSQL 数据库,你需要“发布”容器的端口,使它们可以公开访问。例如,运行:

docker run -d -p 2345:5432 andrealmar/postgresql:9.3

在宿主机(虚拟机)的2345端口上发布容器的5432端口在你的情况下)。

要访问,请使用虚拟机的 IP 地址,您可以通过docker-machine(假设您的虚拟机名为 default);

docker-machine ip default
192.168.99.100

然后连接;

psql -h 192.68.99.100 -p 2345 -U docker docker

关于macos - 无法连接 Docker + PostgreSQL 9.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36415654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com