当前位置: 首页 > 知识库问答 >
问题:

在docker容器中安装PostgreSQL

元景天
2023-03-14

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

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

我在SO和整个互联网上看了几个问题,但没有运气。

共有3个答案

唐信瑞
2023-03-14

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

如果出于任何原因这不起作用,您可以在Docker Index:https://index.docker.io/search?q=postgresql上查看许多现成的postgresql docker容器以供参考

许多容器都是从github上的可信回购协议构建的。因此,如果你发现一个似乎符合你的需求,你可以查看来源。

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

易俊友
2023-03-14

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

如果您使用端口绑定在docker中运行postgresql-server,那么您必须告诉psql使用TCP-socket。只需添加host参数(--hostor-h):

psql-h localhost[任何其他参数]

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

郎言
2023-03-14

问题是您的应用程序/项目正在尝试访问HOST机器(而不是docker容器)中的postgres套接字文件

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

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

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

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

还有其他解决方案,但我觉得这一个最合适。最后,如果需要访问的应用程序/项目也是一个容器,那么最好将它们链接起来。

 类似资料:
  • 问题内容: 我一直在关注几种不同的教程以及官方教程,但是每当我尝试在容器中安装PostgreSQL时,我都会收到以下消息 我在SO和整个互联网上浏览了几个问题,但是没有运气。 问题答案: 问题是您的应用程序/项目正在尝试访问HOST机器(不是docker容器)中的postgres套接字文件。 要解决这个问题,要么必须在使用该标志为postgres容器设置端口时明确要求进行tcp / ip连接,要么

  • 如何在高山容器中安装Docker并运行docker映像?我可以安装,但无法启动docker,并且在运行时获取“docker命令未找到错误”。

  • 问题内容: 首次运行高山docker容器并尝试进行openssh安装时,会发生以下情况: 应该如何安装openssh? 问题答案: 跑第一。以下粘贴包含一个完整的示例:

  • 我是django、docker和scrapy的新手,我正在尝试运行一个也使用scrapy的django应用程序(我基本上创建了一个django应用程序,它也是一个scrapy应用程序,并尝试从django视图调用蜘蛛)。尽管在需求中指定了这个。txt和从Dockerfile运行pip,在运行和django应用程序在系统检查期间失败,导致web容器退出,原因是以下异常: 我尝试使用而不是pip,,更

  • 命令输出: 加载插件:fastestmirror,langpacks从缓存的主机文件加载镜像速度*base:repo1.ash.innosscale.net*epel:mirror.us.leaseweb.net*extras:mirror.rackspace.com*更新:ftp.osuosl.org解析依赖项还有未完成的事务。您可以考虑首先运行yum-complete-transaction,

  • 问题内容: 试图安装在vim或nano的docker内部,但我只得到这个: 退出docker并执行操作,然后我得到回复,在docker内同时执行它没有响应。 可能是什么问题呢? 问题答案: 解决方案是使用以下命令运行docker: