当我在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-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的评论。

其他回答

我通过重新启动Docker来解决这个问题。

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

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

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

我也有同样的问题, (在运行Docker-compose up的目录下) 帮助

UPD:注意-这也会删除你从评论中提取的本地docker图像

使用8888端口的是Jupiter,我必须更改Jupiter笔记本的配置文件以在另一个端口上运行。

列出谁在使用该特定端口。 9 . sudo lsof -i -P -n | grep

你可以在~/.jupyter/jupyter_notebook_config.py中指定你想要Jupyter运行的端口,不注释/编辑下面的行:

c.NotebookApp.port = 9999

如果你没有jupyter_notebook_config.py,试着运行jupyter notebook——generate-config。有关Jupyter配置的更多详细信息,请参见此。

也许这太粗鲁了,但对我来说很管用。重新启动docker服务本身

sudo service docker restart

希望它也适用于你!