问题描述
当我在Docker项目中运行docker-compose up
时,它失败并显示以下消息:
Error starting userland proxy: listen tcp 0.0.0.0:3000: bind: address already in use
netstat -pna | grep 3000
显示如下:
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN -
我已经尝试过docker-compose down
,但没有帮助。
最佳回答
在您的情况下,使用该端口的是其他进程,如注释中所示,sudo netstat -pna | grep 3000
帮助您解决了问题。
在其他情况下(我本人也曾多次遇到),它大多是在其他情况下运行的同一容器。在那种情况下,docker ps
非常有帮助,因为我经常将相同的容器留在其他目录中运行,然后尝试在其他使用相同容器名称的地方再次运行。
docker ps
如何帮助我:docker rm -f $(docker ps -aq)
是一个简短命令,可用于删除所有容器。
编辑:添加了docker ps
如何帮助我。
次佳回答
这对我有帮助:
docker-compose down
docker rm -fv $(docker ps -aq)
sudo lsof -i -P -n | grep <port number>
然后:kill -9 <process id>
(macOS)或sudo kill <process id>
(Linux)。
资料来源:comment by user Rub21。
第三种回答
我有同样的问题。我通过在主机上停止Apache2服务来解决此问题。
第四种回答
我遇到了同样的问题,docker-compose down --rmi all
(在与您运行docker-compose相同的目录中)有助于