第一步:确认系统是否“禁封”了该端口
请在刚才的黑窗口(CMD)里输入这行命令:
DOS
netsh interface ipv4 show excludedportrange protocol=tcp
看结果: 如果你发现 6379 落在显示的某个“起始端口”和“结束端口”范围内,且旁边有星号 *,那就破案了。Windows 把这一段端口预留给系统组件(如 WSL2 或 Hyper-V)用了。
第二步:最有效的“暴力”解法
不用重启电脑,通常这一招就能把“禁停牌”撤掉:
- 关闭 Docker Desktop(确保它不在后台运行)。
- 以 管理员身份 重新打开 CMD。
- 依次执行以下命令:
DOS
# 1. 停止 NAT 网络服务(这会释放被系统保留的端口)
net stop winnat
# 2. 此时趁机去 Docker Desktop 里启动你的 Redis 容器
# 如果启动成功了,再执行下面的命令恢复网络
net start winnat
第三步:如果还是不行(终极方案)
如果上面的招数都失灵了,咱们“惹不起躲得起”:
-
在 Docker 界面删掉这个启动失败的
my-redis。 -
重新运行一个新的 Redis 容器,修改宿主机端口:
- Host Port (宿主机端口): 改成
6380或16379。 - Container Port (容器端口): 保持
6379不变。
- Host Port (宿主机端口): 改成
-
注意: 这样操作后,你 Java 代码
application.yml里的 Redis 端口也要改成对应的6380或16379。