gpt4 book ai didi

macos - 如何连接到 Mac 上 Docker (1.12.0) 容器中的 Postgres 服务器?

转载 作者:行者123 更新时间:2023-11-29 11:49:42 31 4
gpt4 key购买 nike

最新版本的 Docker 不再使用虚拟机,而是使用管理程序连接到容器。这意味着我无法再使用 psql 登录到 postgres:

➜  postgres git:(master) ✗ docker run -d -p 5433:5432 db postgres
<sha>
➜ postgres git:(master) ✗ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
111f3bed4c52 db "/docker-entrypoint.s" 17 minutes ago Up 17 minutes 0.0.0.0:5433->5432/tcp zen_hugle
➜ postgres git:(master) ✗ psql -p 5433 -U postgres
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5433"?

我也曾尝试将 localhost 指定为主机,但这会导致奇怪的输出:

➜  postgres git:(master) ✗ psql -h localhost -p 5433 -U postgres
psql: %

有人知道在这种情况下该怎么办吗?谢谢。

最佳答案

用下面的命令,

docker run -d -p 5433:5432 db postgres

您正在将 docker 的 5432 端口导出到 docker-engine 的 5433 端口。不是您主机的 5433。

使用以下命令获取您的 docker 机器的 IP 地址(假设您的 docker 虚拟机名称是 default)

docker-machine env default

这应该会给你类似下面几行的结果

> export DOCKER_TLS_VERIFY="1"
> export DOCKER_HOST="tcp://192.168.99.100:2376"
> export DOCKER_CERT_PATH="/Users/<your-user>/.docker/machine/machines/default"
> export DOCKER_MACHINE_NAME="default"

使用你的 docker-machine 的 IP 地址连接到容器中运行的 Postgres

>psql -h 192.168.99.100 -p 5433 -U postgres

psql (9.5.0, server 9.5.5)
Type "help" for help.

postgres=#

关于macos - 如何连接到 Mac 上 Docker (1.12.0) 容器中的 Postgres 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38818181/

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