一尘不染

在Docker容器中安装PostgreSQL

docker

我一直在关注几种不同的教程以及官方教程,但是每当我尝试在容器中安装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和整个互联网上浏览了几个问题,但是没有运气。


阅读 1318

收藏
2020-06-17

共1个答案

一尘不染

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

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

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

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

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

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

2020-06-17