kmscon(KMS/DRM 终端)及可选音频支持(PulseAudio/PipeWire)。kmscon。| 变量名 | 说明 | 示例 |
|---|---|---|
| APP_COMMAND | 覆盖默认执行命令 | kodi-standalone |
| TZ | 时区 | Asia/Shanghai |
| LANG | 语言/区域 | zh_CN.UTF-8 |
| LIBGL_ALWAYS_SOFTWARE | 强制软件渲染 | 1 |
| MESA_LOADER_DRIVER_OVERRIDE | 软件驱动 | swrast |
| KMSCON_CONFIG | kmscon 额外参数 | --font-name "Noto Sans CJK SC" |
docker build -t kmscon:local kmscon
假设宿主机已具备显卡和音频后端(ALSA / PulseAudio / PipeWire),可根据实际环境调整参数。
docker run --rm \
-e TZ=Asia/Shanghai -e LANG=zh_CN.UTF-8 \
--device /dev/dri --device /dev/snd --device /dev/input --cap-add SYS_ADMIN --cap-add SYS_RAWIO \
-v /run/udev:/run/udev:ro \
kmscon:local
仅在确需 root 会话运行 PulseAudio 时:
sudo -i
usermod -a -G pulse-access root
gpasswd -a root pulse
gpasswd -a root pulse-access
sed -i 's/^ConditionUser=!root/#ConditionUser=!root/' /usr/lib/systemd/user/pulseaudio.* 2>/dev/null
sed -i 's/^ConditionUser=!root/#ConditionUser=!root/' /usr/lib/systemd/user/pipewire.* /usr/lib/systemd/user/pipewire-pulse.* 2>/dev/null
systemctl --user enable pulseaudio
systemctl --user start pulseaudio
当硬件驱动不可用或 VA-API 初始化失败时,可通过以下变量回退到软件渲染(性能下降明显):
LIBGL_ALWAYS_SOFTWARE=1 使用软件渲染MESA_LOADER_DRIVER_OVERRIDE=swrast 强制加载 swrast 驱动XDG_RUNTIME_DIR 与音频 socket 路径与宿主一致且容器有权限访问# version: "3.8"
services:
kmscon:
build: .
image: wjz304/kmscon:latest
container_name: kmscon
restart: unless-stopped
# privileged: true # 启用特权模式(可选, 注意安全风险)
# tty: true # 分配伪终端
# stdin_open: true # 允许交互式终端
environment:
- TZ=Asia/Shanghai
- LANG=zh_CN.UTF-8
- KMSCON_CONFIG=--font-name "Noto Sans CJK SC" # kmscon 配置
# - LIBGL_ALWAYS_SOFTWARE=1 # 强制使用软件渲染(可选)
# - MESA_LOADER_DRIVER_OVERRIDE=swrast # 强制使用软件渲染(可选)
# - XDG_RUNTIME_DIR=/run/user/1000 # PulseAudio/PipeWire 支持,需额外配置(可选)
devices:
- /dev/dri:/dev/dri # 显卡直通 (必须)
- /dev/snd:/dev/snd # 声卡直通
- /dev/input:/dev/input # 输入设备直通(键盘、鼠标、遥控器等)
volumes:
- /run/udev:/run/udev:ro # 使容器能读取设备信息(设备热插拔、输入设备、GPU/DRM 等元数据)
# - /run/user/1000/pulse/native:/run/user/1000/pulse/native # PulseAudio 支持,需额外配置(可选)
# - /run/user/1000/pipewire-0:/run/user/1000/pipewire-0 # PipeWire 支持,需额外配置(可选)
cap_add:
- SYS_ADMIN # 允许使用 ioctl 等操作 DRM 设备
- SYS_RAWIO # 允许直接访问硬件设备
# network_mode: host # 使用宿主网络模式 (可选,UPnP/DLNA 及 AirPlay 需要)
shm_size: "1gb"
security_opt:
- seccomp=unconfined
Content type
Image
Digest
sha256:1a5a3d35d…
Size
305.4 MB
Last updated
22 days ago
docker pull wjz304/kmscon