windows下docker容器启动时提示端口不可用的解决办法


问题:

执行docker run后出现以下报错

(HTTP code 500) server error - Ports are not available: listen tcp 0.0.0.0:11211: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

原因是使用了hyper-V的保留端口

# 查看hyper-v启动后的保留端口范围
netsh interface ipv4 show excludedportrange protocol=tcp

协议 tcp 端口排除范围
 
开始端口    结束端口
----------    --------
      1026        1125
      1226        1325
      1326        1425
      1426        1525
      1526        1625
      2180        2279 ... # 通过这个可以查看被占用的项目端口是否在这个范围内
 

解决办法:

管理员权限运行cmd后按以下步骤输入命令并运行docker

1.停止Windows NAT 驱动程序
net stop winnat

2.启动容器 docker start ...
3.开启Windows NAT 驱动程序
net start winnat

 

参考:

Unable to bind ports: Docker-for-Windows & Hyper-V excluding but not using important port ranges · Issue #3171 · docker/for-win (github.com)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM