当我在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更新的端口比关闭其他使用端口80的服务更有意义。

其他回答

在运行之前:docker运行-d——name oracle -p 1521:1521 -p 5500:5500 qa/oracle 我只是把端口改为docker run -d——name oracle -p 1522:1522 -p 5500:5500 qa/oracle

这对我来说很有效!

我有同样的问题,通过停止docker容器,它得到了解决。

sudo docker container stop <container-name>

当我试图启动一个新的容器时,我得到了下面的错误

监听TCP 0.0.0.0:8080: bind:地址已被使用。

查看8080端口上运行的进程:

Netstat -tulnp |握把 8080

我得到了下面的输出

[root@ip-112-x6x-2x-xxx.xxxxx.compute.internal (aws_main) ~]# netstat -tulnp | grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN **12749**/java [root@ip-112-x6x-2x-xxx.xxxxx.compute.internal (aws_main) ~]#

run

击杀-9 12749

然后尝试重新启动容器,它应该可以工作

我今天下午升级了我的码头机,遇到了同样的问题。我尝试重新启动docker,但没有运气。

最后,我不得不重新启动我的电脑,它工作了。绝对是个bug。

这帮助了我:

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