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)

你可能感兴趣的:(windows下docker容器启动时提示端口不可用的解决办法)