繁体   English   中英

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

[英]How do you connect to postgres running in a Docker container on OSx?

我有在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创建了一个虚拟docker-machine 但是,我仍然无法通过192.168.99.100:5432连接到postgres。 我想念什么? 任何帮助将不胜感激。

这是一个工作示例,说明如何使用Docker for Mac启动Postgres。 这与您的示例相似。

请注意,这不是 docker-machine,因此网络的工作方式可能有所不同。

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

我尝试从Docker主机建立与它的连接…

Localhost工作:

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)"

如果您有适用于Mac的Docker,则它应该可以在localhost正常运行: https : //docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM