首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在码头容器中安装PostgreSQL

在码头容器中安装PostgreSQL
EN

Stack Overflow用户
提问于 2014-05-18 17:17:35
回答 5查看 42.6K关注 0票数 32

我一直在学习几个不同的教程以及正式教程,但是每当我试图在容器中安装PostgreSQL时,我都会收到以下消息

代码语言:javascript
运行
复制
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我已经在网上浏览过几个问题,但是没有运气。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-01-05 12:17:35

问题是,您的应用程序/项目试图访问主机中的postgres套接字文件(而不是坞容器)。

要解决这个问题,要么在使用-p标志为postgres容器设置端口时显式地请求tcp/ip连接,要么使用-v标志与主机共享unix套接字。

注意:使用-v--volume=标志意味着在主机和码头容器之间共享一些空间。这意味着,如果您在主机上安装了postgres并运行它,您可能会遇到问题。

下面我演示如何运行一个postgres容器,它可以从tcp/ip和unix套接字访问。另外,我将容器命名为postgres

docker run -p 5432:5432 -v /var/run/postgresql:/var/run/postgresql -d --name postgres postgres

有其他的解决办法,但我认为这是最合适的。最后,如果需要访问的应用程序/项目也是一个容器,最好只是将它们链接起来。

票数 25
EN

Stack Overflow用户

发布于 2018-09-21 11:36:14

默认情况下,psql试图使用UNIX连接到服务器。这就是为什么我们看到/var/run/postgresql/.s.PGSQL.5432- -一个UNIX-套接字描述符的位置。

如果您在带有端口绑定的docker中运行postgresql,则必须告诉psql使用TCP-套接字。只需添加host param (--host-h):

psql -h localhost [any other params]

UPD。或者与主机共享UNIX描述符(其中将启动psql ),如主要答案所示。但是我更喜欢使用TCP套接字作为简单的管理方法。

票数 16
EN

Stack Overflow用户

发布于 2014-05-19 02:50:28

下面是修复这个错误的说明,这个错误也应该适用于您的码头容器:PostgreSQL错误“无法连接到服务器:没有这样的文件或目录”

如果这样做不起作用,那么您可以在docker:https://index.docker.io/search?q=postgresql上查看许多现成的postgresql码头容器。

许多容器是由github上可信的repos构建的。因此,如果您找到一个似乎满足您的需要,您可以查看源。

Flynn项目还包括一个可能值得检查的postgresql设备:https://github.com/flynn/flynn-postgres

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23724713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档