当我在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了,但没用。
当前回答
这帮助了我:
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的评论。
其他回答
在您的情况下,是其他进程正在使用端口,正如评论中所指出的,sudo netstat -pna | grep 3000帮助您解决了这个问题。
而在其他情况下(我自己遇到过很多次),大多数情况下是相同的容器在其他实例中运行。在这种情况下,docker ps非常有用,因为我经常让相同的容器在其他目录中运行,然后在其他地方再次尝试运行,在那里使用相同的容器名称。
docker ps如何帮助我:
docker rm -f $(docker ps -aq)是我用来删除所有容器的简短命令。
编辑:增加如何docker ps帮助我。
我也有同样的问题。我通过停止主机上的Apache2服务来解决这个问题。
@DmitrySandalov的回答:我在8080上运行tomcat/java,它需要继续运行。看看船坞。Yml文件并将8080的条目更改为我选择的另一个条目。
nginx:
build: nginx
ports:
#- '8080:80' <-- original entry
- '8880:80'
- '8443:443'
完美的工作。(唯一的问题是,如果我更新项目,更改将被删除,因为它来自外部回购。)
For Linux / Unix:
简单搜索linux实用程序使用以下命令
netstat -nlp | grep 8888
它将显示在该端口上运行的进程,然后使用该进程的PID(在行中查找PID)杀死该进程。
kill PID
对我来说是
启动userland代理错误:监听tcp 0.0.0.0:9000:绑定:地址已经在使用
我所需要的就是在php风暴中关闭调试监听