WSL + Docker + GPU 安装 video-subtitle-remover 完整文档


🎯 一、最终目标

在本机实现:

text 复制代码
上传视频 → GPU处理 → 输出去字幕视频

🧱 二、最终可用环境(你实际跑通的)

text 复制代码
WSL2
 + NVIDIA 驱动(Windows)
 + 自装 Docker Engine
 + NVIDIA Container Toolkit
 + Docker GPU
 + video-subtitle-remover

⚙️ 三、前置确认(必须通过)

1️⃣ WSL GPU 正常

bash 复制代码
nvidia-smi

👉 必须能看到显卡


2️⃣ Docker GPU 最终验证

bash 复制代码
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi

👉 成功标志:

  • 能看到 GPU
  • 无报错

🌐 四、关键问题:WSL 网络(必须解决)

问题核心就是:

text 复制代码
Could not handshake

👉 本质:

WSL 访问 GitHub CDN 失败


🔥 五、解决方案:临时代理(你最终用的)

👉 设置代理

bash 复制代码
http://192.168.1.246:10809

1️⃣ 设置代理(必须)

bash 复制代码
export http_proxy=http://192.168.1.246:10809
export https_proxy=http://192.168.1.246:10809

2️⃣ apt 必须用临时代理

bash 复制代码
sudo apt-get \
-o Acquire::http::Proxy="http://192.168.1.246:10809" \
-o Acquire::https::Proxy="http://192.168.1.246:10809" \
update

📦 六、安装 NVIDIA Container Toolkit(核心步骤)

1️⃣ 添加源

bash 复制代码
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
bash 复制代码
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

2️⃣ 更新(必须带代理)

bash 复制代码
sudo apt-get \
-o Acquire::http::Proxy="http://192.168.1.246:10809" \
-o Acquire::https::Proxy="http://192.168.1.246:10809" \
update

3️⃣ 安装(必须带代理)

bash 复制代码
sudo apt-get \
-o Acquire::http::Proxy="http://192.168.1.246:10809" \
-o Acquire::https::Proxy="http://192.168.1.246:10809" \
install -y \
nvidia-container-toolkit \
nvidia-container-toolkit-base \
libnvidia-container-tools \
libnvidia-container1

⚙️ 七、配置 Docker GPU

bash 复制代码
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

✅ 八、验证成功(关键)

bash 复制代码
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi

👉 成功 = GPU 已完全打通


🎬 九、运行 video-subtitle-remover

1️⃣ 准备目录

bash 复制代码
mkdir -p ~/vsr-test
cd ~/vsr-test

2️⃣ 放视频

text 复制代码
input.mp4

3️⃣ 执行

bash 复制代码
docker run -it --rm \
--gpus all \
-v $(pwd):/app/test \
eritpchy/video-subtitle-remover:1.4.0-cuda11.8 \
python backend/main.py -i test/input.mp4 -o test/output.mp4

4️⃣ 输出结果

text 复制代码
~/vsr-test/output.mp4

⚠️ 十、这次所有坑总结(重点)


❌ 1. Docker GPU 报错

text 复制代码
could not select device driver

👉 原因:

没装 toolkit


❌ 2. apt handshake

text 复制代码
Could not handshake

👉 原因:

没走代理


❌ 3. update OK install 不行

👉 原因:

install 没带代理


❌ 4. curl 一直失败

👉 原因:

没 export proxy


🎯 十一、核心经验(最重要)

👉 记住这 3 条就够了:


🧠 1. WSL 网络 ≠ Windows 网络

👉 必须单独配代理


🧠 2. apt update ≠ apt install

👉 两个都要走代理


相关推荐
qq_4523962343 分钟前
第十五篇:《UI自动化中的稳定性优化:解决flaky tests的七种武器》
运维·ui·自动化
j_xxx404_1 小时前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
Elastic 中国社区官方博客2 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
jsons13 小时前
给每台虚拟机设置独立控制台密码
linux·运维·服务器
皮皮冰燃3 小时前
docker-18-WSL中安装docker并部署flask服务
docker·容器·flask
少年白char4 小时前
整理上万首音乐后的完整工作流:下载、刮削、播放与避坑指南
docker·nas·musictag·音乐刮削·音乐标签
云栖梦泽4 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
福大大架构师每日一题4 小时前
openclaw v2026.4.24 发布:Google Meet 深度集成、DeepSeek V4 上线、浏览器自动化与插件架构全面升级
运维·架构·自动化·openclaw
yipiantian5 小时前
在Claude项目中实现跨目录访问Skills
linux·运维·服务器
Agent产品评测局5 小时前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化