错误现象
在使用docker启动etcd容器的时候、端口映射为2379:2379、启动的时候报错端口被占用
(HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:2380 -> 127.0.0.1:0: listen tcp 0.0.0.0:2380: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
输入netstat -ano | findstr "2379" 查询、但是没有输出。
错误原因
通常是由于Windows网络地址转换(NAT)服务出现问题导致的
Windows NAT服务:Windows NAT(网络地址转换)服务,也称为WinNAT,是Windows中负责管理端口映射和网络路由的组件。
Docker容器的网络通信依赖于WinNAT服务来进行端口映射。
解决步骤
net stop winnat // 停止WinNAT服务
net start winnat // 重新启动WinNAT服务PowerShell
执行之后、重新启动容器、不再报错