我曾经能够使用5432:5432端口映射运行docker-compose,但最近却遇到此错误:
Error starting userland proxy: listen tcp 0.0.0.0:5432: bind: address already in use
我已经阅读了所有与该问题有关的旧文章,但尚未能够解决此问题。
过去一周来,我一直在为自己的错误感到生气,试图找出如何停止无济于事的正在运行的进程。
我尝试运行
lsof -i tcp:5432
不返回任何结果(只要我的pgadmin /服务器没有运行)
我还看到其他帖子提到跑步
netstat -anp tcp | grep 5432
其中做返回两行:
tcp4 0 0 *.5432 *.* LISTEN
tcp6 0 0 *.5432 *.* LISTEN
但是我不确定如何处理该输出?
答案 0 :(得分:1)
以sudo权限运行lsof -i tcp:5432
:
sudo lsof -i tcp:5432
一个进程(很可能是PostgreSQL)正在监听端口5432,从而阻止另一个进程在该端口上监听。停止该过程,例如使用systemctl
,则可以启动Docker PostgreSQL。
答案 1 :(得分:1)
由于您的计算机上正在运行多个postgres实例,因此可能会发生这种情况。
就我而言,我以前安装了postgres,它始终在机器上运行,因为由于上述错误,基于docker的postgres无法启动。卸载先前安装的postgres有助于解决该问题。
答案 2 :(得分:-1)
我刚看到这篇帖子,其中特别提到了导致此问题的postgres的家庭酿造安装。删除该实例似乎可以立即解决该问题:https://github.com/PostgresApp/PostgresApp/issues/210
brew remove postgresql