Docker的最新版本不再使用虚拟机,而是使用虚拟机管理程序连接到容器。这意味着我再也不能登录到与psql
Postgres的:如何连接到Mac上的Docker(1.12.0)容器中的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: %
有谁知道该怎么做在这种情况下?谢谢。
仅供参考,它确实使用VM,而不是VirtualBox,它在Mac上使用xhyve虚拟机,但使用Unix套接字进行网络连接。如果您需要“本地”模型(例如,更接近模仿生产系统),则最好使用传统VM环境。 – ldg
我假设在你的run声明中它应该是'docker run -d -p 5433:5432 --name = db postgres' – ldg