Ports are not available: listen tcp 0.0.0.0:2181: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
Windows平台运行 docker 报如下错误:
ERROR: for zookeeper Cannot start service zookeeper: Ports are not available: listen tcp 0.0.0.0:2181: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
ERROR: Encountered errors while bringing up the project.
提示:端口拒绝访问(本文示例端口是2181)
查看对应的端口号 2181 是否被占用,netstat -aon|findstr 2181
如果被占用,运行命令 taskkill /pid 8001 -t -f
结束进程,则问题解决
明显端口未被占用,则需要查看端口号是否在 Hyper-V
保留 tcp
端口范围内,开始到结束范围内的端口不可用, netsh interface ipv4 show excludedportrange protocol=tcp
,结果可以看到 2181确实在在排除范围内
解决方法如下 :
- 最简单的办法就是修改目前需要使用的端口,避开
Hyper-V
保留端口范围
如果不修改使用端口,就需要修改保留端口,修改方法如下:
-
最简单的办法-重启电脑:保留的端口是随机的,每次重启电脑都会改变,因此可以通过重启电脑来解决。
-
重新设置一下【TCP 动态端口范围】,让 Hyper-V 只在设定的范围内保留端口即可:(管理员权限)
netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv6 set dynamic tcp start=49152 num=16384
先执行以上两个命令,然后重启电脑。
重启后运行命令 netsh int ipv4 show dynamicport tcp
查看 TCP
动态端口范围
或者运行命令 netsh interface ipv4 show excludedportrange protocol=tcp
查看 TCP
排除范围
关于 hyper-v :https://learn.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/about/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律