
Video Disk Recorder(VDR)是由Klaus Schmidinger开发的免费开源项目,旨在使用标准PC组件构建数字视频录像机,支持接收、录制和回放符合DVB标准的数字电视广播。
lapicidae/vdr-server镜像是基于Arch Linux、VDR4Arch和s6-overlay构建的Docker镜像,提供了开箱即用的VDR服务,集成了多种插件支持、定时任务、日志管理等功能,适用于需要快速部署和自定义数字电视录制系统的场景。
当以下任一源更新时,镜像将自动重建:
适用于需要搭建数字电视录制与回放系统的用户,尤其适合以下场景:
首次启动注意事项
⚠️ 警告:首次启动可能较慢
首次启动时需从AUR构建非内置插件,耗时较长,请耐心等待。
兼容docker-compose v2架构:
yamlversion: "2.1" services: vdr-server: image: lapicidae/vdr-server container_name: vdr-server environment: - PUID=1000 # 用户ID(详见下文说明) - PGID=1000 # 组ID(详见下文说明) - TZ=Europe/London # 时区(如Asia/Shanghai) - PLUGINS=epgsearch live streamdev-server vnsiserver # 可选:插件列表 volumes: - /path/to/system:/vdr/system # 系统配置(启动参数、钩子脚本等) - /path/to/config:/vdr/config # 应用配置(setup.conf、channels.conf等) - /path/to/recordings:/vdr/recordings # 录制文件存储目录 - /path/to/cache:/vdr/cache # 缓存文件(epgimages、cam.data等) - /path/to/channellogos:/vdr/channellogos # 可选:自定义频道Logo - /path/to/log:/vdr/log # 可选:日志文件存储(需启用LOG2FILE) - /path/to/timeshift:/vdr/timeshift # 可选:时移缓冲目录 - /path/to/pkgbuild:/vdr/pkgbuild # 可选:自定义PKGBUILD包目录 ports: - 8008:8008 # VDR-Live插件HTTP端口 - 6419:6419 # 可选:SVDRP协议端口 - 6419:6419/udp # 可选:SVDRP对等连接UDP端口 - 34890:34890 # 可选:VNSI接口(Kodi客户端) - 8099:8099 # 可选:图像服务器端口(需启用START_IMAGESERVER) devices: - /dev/dvb:/dev/dvb # 可选:DVB卡设备映射 cap_add: - SYS_TIME # 可选:允许修改系统时间(需配合VDR的SetSystemTime设置) restart: unless-stopped stop_grace_period: 60s # 重要:确保VDR正常关闭
bashdocker run -d \ --name=vdr-server \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/London \ -e PLUGINS=epgsearch live streamdev-server vnsiserver `# 可选:插件列表` \ -p 8008:8008 \ -p 6419:6419 `# 可选:SVDRP协议端口` \ -p 6419:6419/udp `# 可选:SVDRP对等连接UDP端口` \ -p 34890:34890 `# 可选:VNSI接口(Kodi客户端)` \ -p 8099:8099 `# 可选:图像服务器端口(需启用START_IMAGESERVER)` \ -v /path/to/system:/vdr/system \ -v /path/to/config:/vdr/config \ -v /path/to/recordings:/vdr/recordings \ -v /path/to/cache:/vdr/cache \ -v /path/to/channellogos:/vdr/channellogos `# 可选:自定义频道Logo` \ -v /path/to/log:/vdr/log `# 可选:日志文件存储(需启用LOG2FILE)` \ -v /path/to/timeshift:/vdr/timeshift `# 可选:时移缓冲目录` \ -v /path/to/pkgbuild:/vdr/pkgbuild `# 可选:自定义PKGBUILD包目录` \ --device /dev/dvb:/dev/dvb `# 可选:DVB卡设备映射` \ --restart unless-stopped \ --cap-add=SYS_TIME `# 可选:允许修改系统时间` \ --stop-timeout 60 `# 重要:确保VDR正常关闭` \ lapicidae/vdr-server
容器运行时通过参数进行配置,格式为<外部>:<内部>(如端口映射)。
| 参数 | 功能说明 |
|---|---|
-p 8008 | VDR-Live插件HTTP端口 |
-p 3000 | Streamdev服务器HTTP流端口 1 |
-p 8009 | 可选:VDR-Live插件HTTPS端口(需自行配置证书) |
-p 6419 | 可选:简单VDR协议(SVDRP)端口 |
-p 6419/udp | 可选:SVDRP对等连接UDP端口 |
-p 2004 | 可选:Streamdev服务器VDR-to-VDR流端口 |
-p 34890 | 可选:VDR网络流接口(VNSI,用于Kodi客户端) |
-p 8099 | 可选:图像服务器端口(需启用START_IMAGESERVER) 2 |
-e PUID=1000 | 用户ID,用于权限映射(详见下文说明) |
-e PGID=1000 | 组ID,用于权限映射(详见下文说明) |
-e TZ=Europe/London | 时区设置(如Asia/Shanghai,完整列表见时区数据库) |
-e LANG=en_US.UTF-8 | 默认 locale(支持列表见glibc locales) |
-e PLUGINS=... | 可选:空格分隔的VDR插件列表(默认:epgsearch live streamdev-server vnsiserver,插件列表见https://github.com/VDR4Arch/vdr4arch/tree/master/plugins%EF%BC%89 |
-e START_NALUDUMP=true | 可选:启用每日naludump定时任务(默认4点运行) 3 |
-e START_NALUDUMP_AT=0 4 * * * | 可选:自定义naludump调度时间(cron格式,示例见crontab.guru) |
-e START_IMAGESERVER=true | 可选:启用图像服务器(提供频道Logo和EPG图像) |
-e LOG2FILE=true | 可选:启用日志文件存储(日志路径:/vdr/log) |
-e PROTECT_CAMDATA=true | 可选:设置cam.data为只读,防止意外修改 |
-e DISABLE_WEBINTERFACE=true | 可选:禁用Web界面(live插件) |
-e LOGO_COPY=false | 可选:使用自定义频道Logo(路径:/vdr/channellogos) |
-v /vdr/system | 系统配置目录(启动参数、录制钩子、msmtprc配置等) |
-v /vdr/config | 应用配置目录(如setup.conf、channels.conf) |
-v /vdr/recordings | 录制文件存储目录(视频目录) |
-v /vdr/cache | 缓存目录(如epgimages、cam.data) |
-v /vdr/channellogos | 频道Logo存储目录 |
-v /vdr/log | 日志文件目录(需启用LOG2FILE=true) |
-v /vdr/timeshift | VNSI时移缓冲目录 |
-v /vdr/pkgbuild | 自定义PKGBUILD包目录(配置说明见https://github.com/lapicidae/vdr-server/blob/master/build/base/defaults/pkgbuild%EF%BC%89 |
--device /dev/dvb | DVB卡设备映射(如需使用物理DVB设备) |
使用卷映射(-v)时,主机与容器可能出现权限冲突。通过PUID和PGID可指定容器内运行用户的ID,确保与主机目录权限匹配。
通过以下命令获取主机用户的ID:
bashid username # 输出示例:uid=1000(dockeruser) gid=4321(dockergroup) groups=4321(dockergroup)
将输出的uid和gid分别作为PUID和PGID参数值。
容器内标准路径与主机映射目录对应关系:
| 容器内路径 | 主机映射路径 | 说明 |
|---|---|---|
/etc/vdr | /vdr/system | 系统配置(启动参数、钩子脚本等) |
/var/lib/vdr | /vdr/config | 应用配置(插件配置、频道列表等) |
/srv/vdr/video | /vdr/recordings | 录制文件存储 |
/var/cache/vdr | /vdr/cache | 缓存文件(EPG图像、CAM数据等) |
/usr/share/vdr/channel-logos | /vdr/channellogos | 频道Logo |
基础配置:
vdr/system/conf.d/00-vdr.conf中修改vdr/config/目录(如setup.conf、channels.conf)http://<主机IP>:8008,支持通过远程控制界面修改大部分VDR设置vdr/system/conf.d/目录下的对应文件配置vdr/config/plugins/目录PLUGINS环境变量指定需安装的插件(空格分隔)VDR插件(如epgsearch)可通过sendmail发送邮件通知。容器集成msmtp提供sendmail功能,配置文件为vdr/system/eMail.conf。配置方法详见msmtp文档。
容器停止时会自动生成VDR频道ID列表,存储于vdr/cache/channelids.conf。
针对VDR 2.6.0之前版本的录制文件,可通过连续性计数器检查错误(如用于Web界面显示)。只需在录制主目录(vdr/recordings)创建空文件checkrec,容器启动时会自动执行检查,直至完成所有文件扫描。检查通过eTobi的https://github.com/vdr-projects/vdr-checkts%E5%B7%A5%E5%85%B7%E5%AE%9E%E7%8E%B0%E3%80%82

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务