无法连接Docker + PostgreSQL 9.3
谁可以帮我这个事? 我正在使用Mac OS X El Capitan + Docker。
我的图像的Dockerfile:
https://gist.github.com/andrealmar/bce56f7d8450990333703aa5c4ac8d61
我运行我的容器:
docker run andrealmar/postgresql:9.3
泊坞窗ps显示我的容器正在运行,我做一个docker检查 ,看看哪个IP地址容器有:
docker inspect 8e65f4dec821 | grep IPAddress
输出:
"SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2",
当我尝试使用psql进行连接时:
psql -h 172.17.0.2 -U docker docker
它给我一个超时错误。
psql: could not connect to server: Operation timed out Is the server running on host "172.17.0.2" and accepting TCP/IP connections on port 5432?
我也试过这个命令:
psql -h 172.17.0.2 -p 5432 -d docker -U docker -W
但同样的超时错误发生….
有谁知道我在这里错过了什么?
干杯,
您正试图连接到容器的“内部”(容器 – 容器)networking。 在OS X上运行时,docker守护进程(和容器)在虚拟机中运行。
如果要从OS X机器访问PostgreSQL数据库,则需要“发布”容器的端口,以便公开访问它们。 例如,运行:
docker run -d -p 2345:5432 andrealmar/postgresql:9.3
在主机(虚拟机)上的端口2345上发布容器的端口5432。
要访问,使用虚拟机的IP地址,您可以通过docker-machine获取虚拟机的IP地址(假设虚拟机名称为default
);
docker-machine ip default 192.168.99.100
然后连接;
psql -h 192.68.99.100 -p 2345 -U docker docker