你如何连接到在OSx上的Docker容器中运行的postgres?

我有OSX上的Docker容器中运行postgres。 起初我尝试在本地连接到它。 我启动了容器:

docker run -i -d -h localhost -p 5432:5432 --name some-postgres -t my-postgres:9.6 postgres 

经过一番挖掘之后,我发现你不能通过osx上的localhost来连接它,你需要连接到docker在内部使用的ip地址。 所以我用docker-machine192.168.99.100:2376上创build了一个虚拟docker-machine 。 但是,我仍然无法连接到192.168.99.100:5432 postgres。 我错过了什么? 任何帮助将不胜感激。

如果你有Docker for Mac,那么它应该在localhost工作: https:

下面是一个如何使用Docker for Mac启动Postgres的实例。 这和你的例子很相似。

请注意,这不是docker机,所以也许networking的工作方式不同。

 docker run --rm -it \ -p 5432:5432 \ -e POSTGRES_USER=user-ms \ -e POSTGRES_PASSWORD=12345 \ postgres 

我尝试从Docker主机build立连接…

本地主机工作:

 psql --user user-ms -h localhost 

而本地IP地址也起作用:

 psql --user user-ms -h "$(ifconfig \ | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" \ | grep -v 127.0.0.1 \ | awk '{ print $2 }' \ | cut -f2 -d: \ | head -n1)"