当我在Docker项目中运行Docker -compose up时,它失败了,并显示以下消息:

启动userland代理时错误:监听tcp 0.0.0.0:3000:绑定:地址已在使用

netstat -pna | grep 3000

显示了这个:

tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      -  

我已经试过docker-compose down了,但没用。


当前回答

在我的例子中,问题是我作为根用户运行MongoDB,停止它就可以了。

sudo brew services stop mongodb-community

其他回答

如果你有同样的问题,并且是在Windows上,只是一个旁注:

在我的情况下,进程在我的方式只是grafana-server.exe。因为我首先下载了二进制版本并双击可执行文件,现在它作为一个服务由用户SYSTEM启动,我不能taskkill(没有权限)

我必须进入Windows的“服务管理器”,搜索“Grafana”服务,并停止它。此后,端口3000不再被占用。

希望这能有所帮助。

我多次遇到同样的问题。重新启动docker似乎可以做到这一点

我遇到了这个问题。我的简单解决方案是从系统中删除mongodb

Ubuntu中删除mongodb的命令:

sudo apt-get purge mongodb mongodb-clients mongodb-server mongodb-dev

sudo apt-get purge mongodb-10gen 

sudo apt-get autoremove

这帮助了我:

docker-compose down  # Stop container on current dir if there is a docker-compose.yml
docker rm -fv $(docker ps -aq)  # Remove all containers
sudo lsof -i -P -n | grep <port number>  # List who's using the port

然后: kill -9 <进程id> (macOS)或sudo kill <进程id> (Linux)。

来源:用户Rub21的评论。

在我的机器上,这个netstat -tulpn命令没有显示正在使用的端口(8080)的PID,所以我不能杀死它,杀死容器并重新启动计算机不起作用。所以service docker restart命令为我重新启动docker (ubuntu),端口不再使用,我是一个快乐的家伙,去吃午饭了。