Docker容器端口映射问题
报错信息
Ports are not available: exposing port TCP 0.0.0.0:63791 -> 0.0.0.0:0: listen tcp 0.0.0.0:63791: bind: An attempt was made to access a socket in a way forbidden by its access permissions知识点
- Docker端口映射:Docker允许用户将内部的端口映射到宿主机的端口,从而实现访问容器内运行的服务
- Windows NAT服务:Windows NAT(网络地址转换)服务,也称为WinNAT,是Windows中负责管理端口映射和网络路由的组件,在Windows上,Docker容器的网络通信依赖于WinNAT服务来进行端口映射
问题出现的原因以及解决办法
原因一:宿主机端口被占用。解决方式:换个端口或者终止正在使用端口的进程
shellnetstat -ano | findstr 6379shelltaskkill -PID 进程ID -F原因二:WinNAT服务出现问题或配置不当。解决方式:重启WinNAT服务,重启后再执行docker run就没问题了
shell// 管理员身份运行cmd!!! net stop winnat // 停止WinNAT服务 net start winnat // 重新启动WinNAT服务