问题是您的应用程序/项目正在尝试访问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