数码指南
霓虹主题四 · 更硬核的阅读氛围

用 Docker 部署视频工具的完整流程

发布时间:2026-01-15 20:10:42 阅读:2 次

最近在折腾一个本地ref="/tag/116/" style="color:#2B406D;font-weight:bold;">视频转码工具,想让它在不同机器上都能快速跑起来。试了几种方式,最后还是觉得用 Docker 最省心。装一次环境,到处运行,连配置都不用反复调。

为什么选 Docker 来部署

以前手动安装依赖,FFmpeg、Python 库、各种编解码器,装完一台换下一台还得再来一遍。哪天系统升级出问题,又得重来。Docker 把整个运行环境打包成镜像,启动容器就跟插U盘一样即插即用。

比如你写了个 Python 脚本处理视频封面生成,本地测试没问题,扔到服务器却报错缺库。这种尴尬情况,用 Docker 打包后几乎不会再发生。

基础部署流程走一遍

先在项目根目录写个 Dockerfile,定义运行环境:

FROM python:3.9-slim
RUN apt-get update && \
apt-get install -y ffmpeg && \
rm -rf /var/lib/apt/lists/*
COPY . /app
WORKDIR /app
RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "video_processor.py"]

然后构建镜像:

docker build -t my-video-tool .

运行容器时挂载视频目录,方便读写文件:

docker run -v /home/user/videos:/app/videos my-video-tool

加点实用配置更顺手

实际用的时候发现,每次敲命令太麻烦。干脆写个 docker-compose.yml 管理服务:

version: '3'
services:
video-tool:
build: .
volumes:
- ./videos:/app/videos
environment:
- LOG_LEVEL=info

以后一键启动:docker-compose up,改代码还能自动重建容器。

如果要在树莓派这类设备跑视频服务,记得用 arm64 镜像基础,不然架构不兼容直接起不来。

遇到的问题和解决办法

一开始没装 ffmpeg,容器里跑转码命令直接报错“command not found”。后来在 Dockerfile 里加上软件源安装步骤才搞定。还有一次是权限问题,宿主机目录没给读写权限,容器进不去文件,加了 --user $(id -u) 指定用户就正常了。

现在家里 NAS 和云服务器都用同一套 Docker 配置,换机器三分钟就能上线,连参数都不用调。