WSL运行redis的踩坑操作记录

复盘:从零到 Redis 运行

1. 安装 WSL 2

lua 复制代码
wsl --install
→ 安装了虚拟机平台 + WSL 框架
→ 最后一步报"拒绝访问",但前两个功能已装好
→ 重启电脑

2. 安装 Ubuntu

css 复制代码
wsl --install -d Ubuntu → 权限错误 0x80070005
wsl --install -d Ubuntu --web-download → 还是不行
Microsoft Store → 也没装上
官网下载 .iso → 下错了,那是完整系统镜像
官网下载 .wsl → 正确的 WSL 专用包(331MB)
双击 .wsl → 无法打开
wsl --import Ubuntu D:\wsl\Ubuntu xxx.wsl → 目录不存在
mkdir D:\wsl\Ubuntu → 再 import → 成功

3. WSL 版本升级

css 复制代码
wsl --list -v → VERSION 1
wsl --set-version Ubuntu 2 → 提示缺内核
下载安装 wsl_update_x64.msi → WSL 2 内核
wsl --set-version Ubuntu 2 → 成功,VERSION 2

4. 安装 Docker Desktop

css 复制代码
官网下载 Docker Desktop Installer.exe
安装,勾选 Use WSL 2 based engine
重启,docker --version → 确认安装成功

5. 拉取 Redis 镜像

arduino 复制代码
docker run redis → TLS handshake timeout(网络问题)
配置镜像加速器(docker.1ms.run)→ 还是超时
手动 docker pull docker.1ms.run/library/redis → 还是超时
开全局代理 → 拉取成功

6. 启动 Redis 容器

arduino 复制代码
docker run redis:latest → Fatal: Can't initialize Background Jobs(Redis 8.x 兼容性问题)
docker run redis:7 → 同样的错误(Redis 7.4 也有)
docker run --privileged redis:7 → 成功!
docker exec -it redis redis-cli ping → PONG ✅

踩坑总结

原因 解决
WSL 安装权限错误 Windows Home 权限限制 wsl --import 手动导入
下了 .iso 而不是 .wsl 两种文件用途不同 下 .wsl 专用包
WSL 版本是 1 不是 2 缺 WSL 2 内核 手动安装 wsl_update_x64.msi
Docker 拉镜像超时 国内网络限制 开代理
Redis 启动即退出 Background Jobs 权限不足 --privileged 参数

加 --privileged 参数 原理是什么

--privileged 是什么

让容器拥有宿主机几乎全部的系统权限

正常容器 vs --privileged 容器

markdown 复制代码
正常容器:在沙盒里运行,权限被严格限制
          → 不能改系统设置、不能访问设备、不能创建特殊线程

--privileged:解除所有限制,接近在宿主机上直接运行
          → 可以做几乎任何事

Redis 为什么需要

Redis 启动时要创建后台线程做持久化(RDB/AOF),这需要调用 Linux 的 clone() 系统调用。正常容器禁止了这个操作:

makefile 复制代码
Redis: 我要创建后台线程
容器:  Operation not permitted(没权限)
Redis: Fatal,启不了,退出

加了 --privileged 后:

makefile 复制代码
Redis: 我要创建后台线程
容器:  可以
Redis: 启动成功 ✅

安全问题

--privileged 在生产环境不推荐,因为容器能控制宿主机。更精确的做法是只给需要的权限:

css 复制代码
docker run -d --name redis --cap-add SYS_RESOURCE -p 6379:6379 redis:7

--cap-add SYS_RESOURCE 只添加资源管理权限,比 --privileged 安全得多。

不过这个问题本质上是 Docker + WSL 2 的兼容性问题,原生 Linux 上一般不会遇到。学习阶段用 --privileged 没问题。

相关推荐
不能只会打代码8 小时前
校享云 — 高校智慧后勤平台微服务架构设计与实践
spring cloud·docker·微服务·nacos·vue·校享云
前端Baymax10 小时前
kube-proxy iptables模式下NodePort间歇性超时
docker·容器·kubernetes
一只积极向上的小咸鱼10 小时前
多机Docker + InfiniBand 分布式运行实操手册
分布式·docker·容器
java_logo10 小时前
Docker 部署 WPS 在线办公套件,浏览器即可编辑 Word、Excel、PPT
docker·word·wps·wps部署教程·wps免费版·轩辕镜像·docker部署教程
AI服务老曹11 小时前
Docker部署AI视频分析平台项目实战记录
人工智能·docker·音视频
留不住的何止是时间11 小时前
关于docker构建镜像build指令的注意事项
运维·docker·容器
小兔崽子去哪了1 天前
Docker 删除镜像后磁盘空间没有释放?
后端·docker·容器
Zhu7581 天前
在Docker环境部署ApacheGuacamole,对接PG数据库
数据库·docker·容器
少陽君1 天前
Docker 部署 Loki + Promtail + Grafana 日志监控栈
docker·容器·grafana
独自归家的兔1 天前
2026年7月2日 Docker 容器化部署 PaddleOCR-VL 实战(OpenAI 协议兼容 HTTP 调用)
运维·docker·容器