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

👉 两个都要走代理


相关推荐
SkyWalking中文站18 小时前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
程序员老赵19 小时前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
程序员老赵21 小时前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
火车叼位21 小时前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
小猿姐1 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SkyWalking中文站2 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站3 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ3 天前
Kubeneters HA Cluster部署
运维
lichenyang4533 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang4533 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器