Win10 Docker 启动报错端口占用

在 win10 中安装 Docker 启动容器时报错如下:

PS C:\Users\12547\tb-server-docker> docker-compose up -d
Creating network "tb-server-docker_default" with the default driver
Creating tb-server-docker_zookeeper_1 ... done
Creating tb-server-docker_kafka_1     ... done
Creating tb-server-docker_mytb_1      ... error

ERROR: for tb-server-docker_mytb_1  Cannot start service mytb: Ports are not available: listen tcp 0.0.0.0:1883: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

ERROR: for mytb  Cannot start service mytb: Ports are not available: listen tcp 0.0.0.0:1883: 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.

根据错误提示是端口被占用了,使用如下命令查看本机监听端口信息,然而查询结果为空。

netstat -aon|findstr "1883"

通过查找资料,在 stackoverflow 上面找到了问题原因和解决方法。StackOverFlow 解决方案

报错原因: 详细原因点这里,简要的说就是 Hyper-V 排除了一些范围的端口号,而我们要绑定监听的端口号例如我这里使用的 1883 就在其中。具体被排除的范围可以使用如下命令查看:

C:\Users> netsh interface ipv4 show excludedportrange protocol=tcp

协议 tcp 端口排除范围

开始端口    结束端口
----------    --------
      1029        1128
      1229        1328
      1329        1428
      1429        1528
      1529        1628
      1629        1728
      1729        1828
      1855        1954
      2202        2301
      2357        2456
      2557        2656
      2657        2756
      2757        2856
      2869        2869
      2957        3056
      3057        3156
      3157        3256
      4628        4727
      4728        4827
     50000       50059     *

* - 管理的端口排除。

可以发现我要绑定的 1883 端口就在 1855 - 1954 范围内.

解决方法: 打开管理员模式 Windows PowerShell,执行下面命令重启 NAT 驱动服务即可。

PS C:\WINDOWS\system32> net stop winnat

Windows NAT Driver 服务已成功停止。

PS C:\WINDOWS\system32> net start winnat

Windows NAT Driver 服务已经启动成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值