
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/fhriley/kodi-headless-novnc/actions/workflows/actions.yml/badge.svg?branch=master](https://github.com/fhriley/kodi-headless-novnc/actions/workflows/actions.yml)
Docker容器中的无头模式Kodi安装,通常与MySQL Kodi设置配合使用,允许通过Web界面更新媒体库。
https://hub.docker.com/r/fhriley/kodi-headless-novnc
https://github.com/fhriley/kodi-headless-novnc
此镜像相比其他无头镜像有两个主要优势:
Kodi图形界面可通过8000端口的Web浏览器或5900端口的VNC访问,无需运行第二个"真实"的Kodi即可完成所有配置。
此Kodi镜像不使用任何代码补丁,因此可以轻松更新到任何Kodi新版本。
bashdocker run --name=kodi-headless-novnc \ -d --init \ -v <我的数据路径>:/data \ -e KODI_DB_HOST=<我的KODI数据库主机> \ -e KODI_DB_USER=<我的KODI数据库用户> \ -e KODI_DB_PASS=<我的KODI数据库密码> \ -e TZ=<我的时区> \ -p 5900:5900/tcp \ -p 8000:8000/tcp \ -p 8080:8080/tcp \ -p 9090:9090/tcp \ -p 9777:9777/udp \ docker.xuanyuan.run/fhriley/kodi-headless-novnc:Nexus
Docker Compose示例:
yamlversion: "3" services: kodi: image: docker.xuanyuan.run/fhriley/kodi-headless-novnc:Nexus restart: always init: true ports: - "5900:5900/tcp" - "8000:8000/tcp" - "8080:8080/tcp" - "9090:9090/tcp" - "9777:9777/udp" environment: KODI_DB_HOST: 192.168.1.246 KODI_DB_USER: user KODI_DB_PASS: password TZ: America/New_York volumes: - ./kodi_data:/data
| 端口 | 描述 |
|---|---|
5900/tcp | VNC(Kodi图形界面) |
8000/tcp | noVNC HTTP(Kodi图形界面) |
8080/tcp | Web界面 |
9090/tcp | WebSocket |
9777/udp | esall接口 |
| 路径 | 描述 |
|---|---|
/data | Kodi数据和配置文件的存储路径 |
| 变量名 | 描述 |
|---|---|
KODI_DB_HOST | MySQL数据库主机地址(默认值:mysql) |
KODI_DB_USER | Kodi的MySQL用户名(默认值:kodi) |
KODI_DB_PASS | Kodi用户的MySQL密码(默认值:kodi) |
KODI_DB_PORT | MySQL远程端口(默认值:3306) |
KODI_UID | 容器内运行所有进程的用户ID(默认值:2000) |
KODI_GID | 容器内运行所有进程的组ID(默认值:2000) |
KODI_UMASK | 容器内所有进程的umask值(默认值:002) |
TZ | 容器使用的时区(默认值:UTC) |
| 标签 | 代号 | 架构 |
|---|---|---|
latest | Nexus | amd64, armv7, arm64 |
Omega | Omega | amd64, armv7, arm64 |
Nexus | Nexus | amd64, armv7, arm64 |
Matrix | Matrix | amd64, armv7, arm64 |
强烈建议使用代号标签而非latest。Docker会自动为您的平台拉取正确架构的镜像。
使用数据卷(-v标志)时,主机操作系统和容器之间可能出现权限问题。我们通过允许您指定用户KODI_UID和组KODI_GID来避免此问题。确保主机上的数据卷目录归您指定的同一用户所有,即可正常工作。
使用id user命令查看您的用户ID和组ID:
$ id <docker用户> uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)
在此示例中,KODI_UID=1001且KODI_GID=1001。
容器首次启动时,数据库连接设置会自动配置并存储在/data/.kodi/userdata/advancedsettings.xml中。许多其他设置也在此文件内,您可以在生成后修改此文件,或挂载自己的版本。如果挂载自己的版本,数据库配置变量(KODI_DB*)将不会被使用。
如果您打算使用此Kodi实例执行除更新之外的媒体库任务(如清理媒体库等),务必将执行初始媒体库扫描的主机上的sources.xml复制到此实例的userdata文件夹,否则极有可能发生数据库丢失。
docker exec -it kodi-headless-novnc bashdocker logs -f kodi-headless-novnc如果您的媒体与该Docker容器在同一台机器上,且通过smb://在网络上共享媒体,以下方法适用。
首先,将主机媒体目录挂载到容器内的某个位置,使Kodi可以访问。
例如:--mount type=bind,source=/sharedfolders/pool,target=/media
然后,在Kodi的advancedsettings.xml中进行以下配置:
<pathsubstitution> <substitute> <from>smb://192.168.20.3/sharedfolders/pool/</from> <to>/media/</to> </substitute> </pathsubstitution>
完成。
现在Kodi不会通过smb://扫描,而是替换为/media/,扫描速度更快。找到新项目时,会以smb://路径正确存储在SQL中。
如果容器启动后Kodi立即崩溃,请查看https://docs.linuxserver.io/faq#libseccomp%E8%8E%B7%E5%8F%96%E5%8F%AF%E8%83%BD%E7%9A%84%E4%BF%AE%E5%A4%8D%E6%96%B9%E6%B3%95%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务