问题是您的应用程序/项目正在尝试访问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 --namepostgres postgres
还有其他解决方案,但我认为这是最合适的。最后,如果需要访问的应用程序/项目也是容器,则最好将它们链接在一起。



