我一直在关注几个不同的教程以及官方教程,但是每当我试图在容器中安装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和整个互联网上看了几个问题,但没有运气。
以下是修复该错误的说明,也适用于docker容器:PostgreSQL错误“无法连接到服务器:没有这样的文件或目录”
如果出于任何原因这不起作用,您可以在Docker Index:https://index.docker.io/search?q=postgresql上查看许多现成的postgresql docker容器以供参考
许多容器都是从github上的可信回购协议构建的。因此,如果你发现一个似乎符合你的需求,你可以查看来源。
Flynn项目还包括一个可能值得检查的postgresql设备:https://github.com/flynn/flynn-postgres
默认情况下,psql
正在尝试使用UNIX套接字连接到服务器。这就是为什么我们看到/var/run/postgresql/。s、 PGSQL。5432-UNIX套接字描述符的位置。
如果您使用端口绑定在docker中运行postgresql-server,那么您必须告诉psql
使用TCP-socket。只需添加host
参数(--host
or-h
):
psql-h localhost[任何其他参数]
UPD。或者与主机共享UNIX套接字描述符(其中将启动psql
),如主答案所示。但我更喜欢使用TCP套接字作为易于管理的方法。
问题是您的应用程序/项目正在尝试访问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: