我已按照说明here通过Docker安装PostgreSQL。实际上,我使用了以下两个命令:
Run
docker run --name postgresql -d sameersbn/postgresql:9.4-2
Login
sudo docker exec -it postgresql sudo -u postgres psql
然后我做\conninfo
我得到:
# You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432"
接下来我想做什么(但不确定如何)是连接到该数据库的想法是在我的本地机器上运行的外部Python应用程序(而不是另一个文档)。
我应该为localhost:5432
拍摄还是缺少某些东西?
答案 0 :(得分:3)
对于postgresql,您需要export the port,然后就可以像在本地运行一样连接到它。
docker run --name postgresql -d -p 5432:5432 sameersbn/postgresql:9.4-2
如果您不理解上述链接,建议您仔细阅读getting starting guide。
答案 1 :(得分:1)
正如@Burhan Khalid所说,您可以使用以下方式公开您的容器端口:
docker run --name postgresql -d -p 5432:5432 sameersbn/postgresql:9.4-2
要连接到PostgreSQL容器,您可以直接连接到:127.0.0.1:5432
。您无法使用localhost:5432
,因为它会尝试在您的主机中找到套接字文件(套接字文件位于容器中)。
另一种解决方案是使用您的容器IP地址。要查找容器IP地址,您可以使用:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <your-container-id>
但是,如果重新启动容器,容器将获得一个新的IP。因此,您需要重新配置数据库配置。