我正在尝试解决我的 postgres 客户端和我的 postgres docker 容器(本地)之间的连接问题。
为了启动我的docker容器我运行了以下命令:
docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=docker postgres:9.4
容器启动成功。
➜ ~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14310d9f0ece postgres:9.4 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:5432->5432/tcp postgres
然后我使用通过 homebrew 安装的 psql 客户端尝试连接,但它只是挂起:
➜ ~ psql --version
psql (PostgreSQL) 9.4.22
➜ psql -h 127.0.0.1 -p 5432
// hangs
我也尝试使用 pgAdmin 进行连接,但同样无法连接。容器中没有指示尝试连接的日志活动。令人沮丧的是,我可以成功 ping 容器:
➜ ~ nc -vz localhost 5432
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif lo0
src ::1 port 51856
dst ::1 port 5432
rank info not available
TCP aux info available
Connection to localhost port 5432 [tcp/postgresql] succeeded!
我还检查了是否有其他东西可能在监听 5432,但看起来只有 docker
➜ ~ lsof -n -i :5432 | grep LISTEN
com.docke 13037 steve 27u IPv4 0xd8d4bc5463376f87 0t0 TCP *:postgresql (LISTEN)
com.docke 13037 steve 115u IPv6 0xd8d4bc5462ccdd07 0t0 TCP [::1]:postgresql (LISTEN)
寻求有关如何以其他方式解决此问题的建议。
答案1
好吧,花了大约一天时间后,我在 docker 中遇到了一个 github 问题,许多用户报告了 Mac 上 docker 的网络问题。我重启了笔记本电脑,现在可以正常连接了。
https://github.com/docker/for-mac/issues/3350
我在 Mojave Macbook Pro 上使用 Docker 版本 18.09.2,内部版本 6247962。我也会确保将自己添加到 github 问题中。