解决Windows下Docker启动容器时,端口被占用错误
2022/3/26 7:23:01
本文主要是介绍解决Windows下Docker启动容器时,端口被占用错误,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天在启动本机的redis容器时报了如下错误:
Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - Ports are not available: listen tcp 0.0.0.0:6379: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
我的环境信息
- Windows版本: Windows 11 专业版
- Docker Desktop Version: 4.3.2
- 启用Hyper-V 和 WSL2
查找问题
首选确保本机端口是否被占用,使用如下命令:
netstat -ano | findstr 6379
结果端口没有被占用
查资料之后发现 Hyper-V
会保留部分tcp端口,开始到结束范围内的端口不可用, 使用如下命令查看保留的端口:
netsh interface ipv4 show excludedportrange protocol=tcp
可以得到
协议 tcp 端口排除范围 开始端口 结束端口 ---------- -------- 1026 1125 1126 1225 1226 1325 1326 1425 1426 1525 1538 1637 2327 2426 2427 2526 2527 2626 2627 2726 2727 2826 2827 2926 6344 6567 50000 50059 * 50070 50070 * * - 管理的端口排除。
可以看到6379
在排除范围内
解决办法
此时可以修改容器启动命令(主要是修改端口)重新启动容器。
这种是绕过了被保留的端口, 如果你的程序一定要使用范围内的端口,有如下三种方式
一、临时关闭Hyper-V
法
-
临时关闭
Hyper-V
-
配置端口
-
恢复
Hyper-V
二、重启电脑大法
保留的端口是随机的,每次重启电脑都会改变,因此可以通过重启电脑来解决。
三、永久排除保留端口
1、在运行 Docker 之前,以管理员身份运行 powershell
2、使用以下命令永久排除6379作为保留端口(如果端口被占用需要重启一次电脑)
netsh int ipv4 add excludedportrange protocol=tcp startport=6379 numberofports=1 store=persistent
提示:上面的命令可以通过修改
numberofports
参数保留startport
开始的多个端口
3、再次运行 netsh interface ipv4 show excludedportrange protocol=tcp
命令可以看到6379端口已被排除(带有*号标记)
协议 tcp 端口排除范围 开始端口 结束端口 ---------- -------- 1026 1125 1126 1225 1226 1325 1326 1425 1426 1525 1538 1637 2327 2426 2427 2526 2527 2626 2627 2726 2727 2826 2827 2926 6379 6379 * 50000 50059 * 50070 50070 * * - 管理的端口排除。
之后再重启电脑6379
端口就不会包含在保留端口内了。
总结
三种解决方法中,第一种临时关闭Hyper-V
可以避免重启电脑,可以作为紧急解决办法。第二种重启电脑需要靠运气,第三种永久排除保留端口是最高效的。
这篇关于解决Windows下Docker启动容器时,端口被占用错误的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27docker容器内没有bash,怎么通过docker exec -it进入容器内部?-icode9专业技术文章分享
- 2024-12-26alpine构建的镜像无法使用docker exec -it 进入内部怎么办?-icode9专业技术文章分享
- 2024-12-24Docker环境部署资料详解
- 2024-12-24Docker环境部署教程:新手入门详解
- 2024-12-24Docker环境部署项目实战教程
- 2024-12-24Docker环境部署学习:初学者指南
- 2024-12-24Docker环境部署入门:新手必读指南
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解