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)

上一篇:使用OpManager轻松进行Windows网络监控


下一篇:Hyper虚拟机安装CentOS7