当我在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了,但没用。


当前回答

For Linux / Unix:

简单搜索linux实用程序使用以下命令

netstat -nlp | grep 8888

它将显示在该端口上运行的进程,然后使用该进程的PID(在行中查找PID)杀死该进程。

kill PID

其他回答

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

我试了所有的方法,包括关闭播放功能,但都没有效果。

最后,这个简单的解决方案奏效了。 在应用程序运行定义主机为0.0.0.0和端口5000显式,并bing一切工作

app.run(debug=True,host="0.0.0.0",port=5000)

现在运行应用程序为

docker run -p 5000:5000 <Image Name>

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

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

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

希望这能有所帮助。

我在我的ubuntu机器上运行apache。我用这个命令杀死了它!

sudo /etc/init.d/apache2 stop

这很可能是因为你已经在你的主机操作系统上运行了一个web服务器,所以它与Docker试图启动的web服务器冲突。

所以,在尝试其他任何方法之前,先试试下面这句话:

Sudo服务apache2停止;Sudo service nginx stopSudo nginx停止;