当我在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了,但没用。
当我在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了,但没用。
当前回答
在您的情况下,是其他进程正在使用端口,正如评论中所指出的,sudo netstat -pna | grep 3000帮助您解决了这个问题。
而在其他情况下(我自己遇到过很多次),大多数情况下是相同的容器在其他实例中运行。在这种情况下,docker ps非常有用,因为我经常让相同的容器在其他目录中运行,然后在其他地方再次尝试运行,在那里使用相同的容器名称。
docker ps如何帮助我:
docker rm -f $(docker ps -aq)是我用来删除所有容器的简短命令。
编辑:增加如何docker ps帮助我。
其他回答
我有同样的问题,通过停止docker容器,它得到了解决。
sudo docker container stop <container-name>
这很可能是因为你已经在你的主机操作系统上运行了一个web服务器,所以它与Docker试图启动的web服务器冲突。
所以,在尝试其他任何方法之前,先试试下面这句话:
Sudo服务apache2停止;Sudo service nginx stopSudo nginx停止;
我试了所有的方法,包括关闭播放功能,但都没有效果。
最后,这个简单的解决方案奏效了。 在应用程序运行定义主机为0.0.0.0和端口5000显式,并bing一切工作
app.run(debug=True,host="0.0.0.0",port=5000)
现在运行应用程序为
docker run -p 5000:5000 <Image Name>
我通过重新启动Docker来解决这个问题。
也许这太粗鲁了,但对我来说很管用。重新启动docker服务本身
sudo service docker restart
希望它也适用于你!