本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

本镜像提供 Docker 容器化的 Roon Server,用于构建个人音乐中心,支持本地音乐库管理、流媒体服务集成及多设备音频输出。通过 Docker 部署可实现环境隔离、简化安装流程,并确保跨平台一致性。
容器需访问主机音频设备,需先安装 ALSA 音频组件:
apt install alsa-utils libasound2 libasound2-data libasound2-plugins
创建 Docker 卷用于持久化 Roon Server 程序文件与配置:
# Roon Server 程序文件存储卷 docker volume create roon-server-data # 缓存与临时数据存储卷 docker volume create roon-server-cache
若需挂载本地音乐库,创建目录并确保权限:
mkdir -p ~/roon/music # 示例路径,可自定义
适用于大多数场景,支持全部功能:
# 获取音频组 GID(用于设备权限) AUDIO_GID=$(getent group audio | cut -d: -f3) # 启动容器(含本地音频支持) docker run \ --name roon-server \ --detach \ --volume roon-server-data:/opt/RoonServer \ # 程序文件持久化 --volume roon-server-cache:/var/roon \ # 缓存持久化 --volume ~/roon/music:/music:ro \ # 本地音乐库(可选,只读) --network host \ # Host 网络模式 --restart unless-stopped \ # 异常退出后自动重启 --volume /run/udev:/run/udev:ro \ # 监听 USB 设备变化 --device /dev/bus/usb \ # 映射 USB 总线 --device /dev/snd \ # 映射音频设备 --group-add "${AUDIO_GID:-29}" \ # 添加音频组权限 elgeeko/roon-server
docker logs -f roon-server # 实时查看启动日志,确认服务正常运行
无本地音频支持(仅通过 RAAT 设备输出):
docker run \ --name roon-server \ --detach \ --volume roon-server-data:/opt/RoonServer \ --volume roon-server-cache:/var/roon \ --volume ~/roon/music:/music:ro \ --network host \ --restart unless-stopped \ elgeeko/roon-server
带本地音频支持(如 USB DAC):
使用 4.1 中的完整命令,关键参数说明:
--volume /run/udev:/run/udev:ro:监听 USB 设备插拔事件--device /dev/bus/usb:允许访问 USB 设备--device /dev/snd:允许访问 ALSA 音频设备--group-add "${AUDIO_GID:-29}":添加音频组权限(默认 GID 29)通过 macvlan 为容器分配独立 IP,实现网络隔离(需有线网络,不支持 Wi-Fi)。
创建 macvlan 网络(替换为实际网络参数):
docker network create \ --driver macvlan \ --subnet 192.168.1.0/24 \ # 本地子网(如 192.168.1.x) --gateway 192.168.1.1 \ # 网关 IP(路由器 IP) -o parent=eth0 \ # 主机网卡(如 eth0、enp0s3) roon-network # 网络名称(自定义)
启动容器(无本地音频):
docker run \ --name roon-server \ --detach \ --volume roon-server-data:/opt/RoonServer \ --volume roon-server-cache:/var/roon \ --volume ~/roon/music:/music:ro \ --network roon-network \ # 使用创建的 macvlan 网络 --restart unless-stopped \ --ip 192.168.1.2 \ # 分配给容器的静态 IP elgeeko/roon-server
启动容器(带本地音频):
在上述命令基础上添加音频相关参数:
AUDIO_GID=$(getent group audio | cut -d: -f3) docker run \ ...(上述参数)... --volume /run/udev:/run/udev:ro \ --device /dev/bus/usb \ --device /dev/snd \ --group-add "${AUDIO_GID:-29}" \ elgeeko/roon-server
桥接模式默认不支持 RAAT 设备发现(需多播路由配置),仅推荐用于仅需主机本地音频输出的场景。需手动映射端口(参考 Dockerfile 源码),并配置主机防火墙。
确保容器命令包含以下参数(已在带音频支持的启动命令中集成):
--volume /run/udev:/run/udev:ro:监听 USB 设备变化--device /dev/bus/usb:USB 总线访问权限--device /dev/snd:ALSA 音频设备访问--group-add $(getent group audio | cut -d: -f3):音频组权限添加以下参数确保时区正确(如北京时间):
--env TZ=Asia/Shanghai \ # 设置环境变量 TZ --volume /etc/localtime:/etc/localtime:ro # 挂载主机时区文件
若设备无法发现 Roon Server 或音频输出异常,可添加以下参数诊断(逐步测试,定位问题后移除):
--cap-add SYS_ADMIN:授予系统管理权限(解决挂载/命名空间操作限制)--security-opt apparmor:unconfined:禁用 AppArmor 限制(解决设备/文件访问被拒)--privileged:特权模式(绕过所有隔离限制,仅用于诊断)--user root)。--ulimit nofile=8192。从源码构建镜像:
git clone <镜像源码仓库> cd <仓库目录> docker build . -t elgeeko/roon-server
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429