
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
FastAPI-DLS 是一个最小化委托许可服务(Minimal Delegated License Service, DLS),旨在提供轻量级的许可管理功能。该服务通过 Docker 容器化部署,简化了许可服务的配置与维护流程。
以下是推荐的 docker-compose.yml 配置,包含完整的服务定义、环境变量和卷挂载:
yamlversion: '3.9' x-dls-variables: &dls-variables TZ: Europe/Berlin # REQUIRED, 必须正确设置时区(服务器与客户端需保持一致) DLS_URL: localhost # REQUIRED, 服务器IP或主机名 DLS_PORT: 443 # 服务端口 LEASE_EXPIRE_DAYS: 90 # 租赁过期天数 DATABASE: sqlite:////app/database/db.sqlite # 数据库连接字符串 DEBUG: false # 是否启用调试模式 services: dls: image: docker.xuanyuan.run/collinwebdesigns/fastapi-dls:latest # 镜像名称 restart: always # 容器重启策略 environment: <<: *dls-variables # 引用上述环境变量 ports: - "443:443" # 端口映射(容器内固定使用443,若需修改外部端口,如"9443:443",需同步设置DLS_PORT: 9443) volumes: - /opt/docker/fastapi-dls/cert:/app/cert # 挂载证书目录(宿主机路径可自定义) - db:/app/database # 挂载数据库卷(使用命名卷持久化数据) volumes: db: # 数据库命名卷
若无需 docker-compose,可直接使用 docker run 命令部署:
bashdocker run -d \ --name fastapi-dls \ --restart always \ -e TZ=Europe/Berlin \ -e DLS_URL=localhost \ -e DLS_PORT=443 \ -e LEASE_EXPIRE_DAYS=90 \ -e DATABASE="sqlite:////app/database/db.sqlite" \ -e DEBUG=false \ -p 443:443 \ -v /opt/docker/fastapi-dls/cert:/app/cert \ -v db:/app/database \ docker.xuanyuan.run/collinwebdesigns/fastapi-dls:latest
| 环境变量 | 是否必填 | 描述 |
|---|---|---|
TZ | 是 | 时区设置(例如 Asia/Shanghai),服务器与客户端必须保持一致。 |
DLS_URL | 是 | FastAPI-DLS 服务器的 IP 地址或主机名(客户端需通过此地址访问服务)。 |
DLS_PORT | 否 | 服务端口,默认 443(若修改外部映射端口,需同步修改此值)。 |
LEASE_EXPIRE_DAYS | 否 | 许可租赁过期天数,默认 90 天。 |
DATABASE | 否 | 数据库连接字符串,默认使用 SQLite:sqlite:////app/database/db.sqlite。 |
DEBUG | 否 | 是否启用调试模式,默认 false(生产环境建议关闭)。 |
| 容器内路径 | 用途 | 宿主机映射建议路径 | 备注 |
|---|---|---|---|
/app/cert | 存储 SSL 证书文件 | /opt/docker/fastapi-dls/cert | 首次启动时自动生成证书,需持久化。 |
/app/database | 存储 SQLite 数据库文件 | 使用命名卷 db(如示例配置) | 避免数据丢失,建议使用命名卷。 |
下载 client token 文件:
bashcurl --insecure -X GET https://<dls-hostname-or-ip>/client-token -o /etc/nvidia/ClientConfigToken/client_configuration_token.tok
说明:
--insecure用于跳过 SSL 证书验证(若使用自签名证书);<dls-hostname-or-ip>替换为 FastAPI-DLS 服务器的 IP 或主机名。
重启 NVIDIA 许可服务:
bashservice nvidia-gridd restart
验证许可状态:
bashnvidia-smi -q | grep "License"
下载 token 文件:通过浏览器访问 https://<dls-hostname-or-ip>/client-token,保存文件。
放置文件到指定路径:将下载的 client_configuration_token.tok 保存至
C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken\。
重启服务:打开“服务”管理界面,重启 NvContainerLocalSystem 服务。
TZ 环境变量与所有客户端的时区必须一致,否则可能导致许可验证失败。443,修改外部端口时需同步更新 DLS_PORT 环境变量(例如外部端口 9443 对应 DLS_PORT=9443)。/app/cert 目录会自动生成 SSL 证书,若需更换自定义证书,可直接替换该目录下的文件。db 持久化数据库,建议定期备份该卷数据以防丢失。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务