当我在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了,但没用。
当前回答
首先,确定在特定端口中运行的是哪个服务。在您的示例中,您已经使用了端口号3000。
netstat -aof | findstr :3000
现在停止正在特定端口上运行的进程
lsof -i tcp:3000
其他回答
我也有同样的问题。我通过停止主机上的Apache2服务来解决这个问题。
For Linux / Unix:
简单搜索linux实用程序使用以下命令
netstat -nlp | grep 8888
它将显示在该端口上运行的进程,然后使用该进程的PID(在行中查找PID)杀死该进程。
kill PID
让我再加一个例子,因为我有同样的错误,目前列出的解决方案都不可行:
serv1:
...
networks:
privnet:
ipv4_address: 10.10.100.2
...
serv2:
...
# no IP assignment, no dependencies
networks:
privnet:
ipam:
driver: default
config:
- subnet: 10.10.100.0/24
根据init顺序,serv2可能会在serv1启动之前被分配IP 10.10.100.2,所以我只是手动为所有容器分配IP以避免错误。也许还有其他更优雅的方式。
我有同样的问题,通过停止docker容器,它得到了解决。
sudo docker container stop <container-name>
如果你有同样的问题,并且是在Windows上,只是一个旁注:
在我的情况下,进程在我的方式只是grafana-server.exe。因为我首先下载了二进制版本并双击可执行文件,现在它作为一个服务由用户SYSTEM启动,我不能taskkill(没有权限)
我必须进入Windows的“服务管理器”,搜索“Grafana”服务,并停止它。此后,端口3000不再被占用。
希望这能有所帮助。