win10使用Docker Desktop启动mysql报错:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306:
问题描述
今天上班用wind10电脑启动Docker Desktop使用MySQL,突然间报了一个错,错误如下:
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
显示Mysql的端口号被占用了?我刚来公司打开电脑,怎么会自动启动MySQL呢。况且我也没有设置docker容器自动启动。然后我又Win+R打开cmd查找了一下mysql的端口号
查看使用3306端口号:
netstat -aon|findstr 3306
发现并没有服务占用3306这个端口。如果执行以上命令发现3306端口号被占用了,可以点击查看该文章删除占用端口号(https://www.cnblogs.com/eternality/p/17164166.html)查询端口改为3306即可。要是端口号没有被其他服务占用,恭喜你和我遇到的是一个错误。
首先通过cmd命令查看哪些端口被禁用TCP协议:
netsh interface ipv4 show excludedportrange protocol=tcp
发现3006端口没有被禁用。
解决方案:
重新启动NAT网络。首先以管理员身份运行CMD。输入以下命令重新启动:
停止NAT网络:
net stop winnat
启动NAT网络:
net start winnat
重新启动成功:
再次启动Mysql容器发现容器启动成功:
分类:
Docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了