
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本Docker镜像用于托管Virtuoso,基于https://github.com/openlink/virtuoso-opensource%E4%BB%93%E5%BA%93%E7%9A%84%E7%89%B9%E5%AE%9A%E6%8F%90%E4%BA%A4SHA%E6%9E%84%E5%BB%BA%E3%80%82%E9%95%9C%E5%83%8F%E6%A0%87%E7%AD%BE%E5%8C%85%E5%90%AB%E5%AE%B9%E5%99%A8%E4%B8%AD%E5%AE%89%E8%A3%85%E7%9A%84Virtuoso%E7%89%88%E6%9C%AC%EF%BC%8C%E4%BE%BF%E4%BA%8E%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%92%8C%E9%80%89%E6%8B%A9%E3%80%82
当前可用的镜像版本标签如下(可在https://hub.docker.com/r/tenforce/virtuoso/tags/%E6%9F%A5%E7%9C%8B%E5%AE%8C%E6%95%B4%E5%88%97%E8%A1%A8%EF%BC%89%EF%BC%9A
bashdocker run --name my-virtuoso \ -p 8890:8890 -p 1111:1111 \ -e DBA_PASSWORD=myDbaPassword \ -e SPARQL_UPDATE=true \ -e DEFAULT_GRAPH=http://www.example.com/my-graph \ -v /my/path/to/the/virtuoso/db:/data \ -d tenforce/virtuoso
/data,需通过-v参数指定宿主机路径yamldb: image: tenforce/virtuoso:1.3.1-virtuoso7.2.2 environment: SPARQL_UPDATE: "true" DEFAULT_GRAPH: "http://www.example.com/my-graph" volumes: - ./data/virtuoso:/data ports: - "8890:8890"
dba密码设置
通过DBA_PASSWORD环境变量在容器启动时设置dba用户密码。若未设置,将使用默认密码。
SPARQL更新权限
将SPARQL_UPDATE环境变量设为true,可授予SPARQL端点的更新权限。
virtuoso.ini配置
virtuoso.ini中的所有配置项可通过环境变量设置,格式为VIRT_$SECTION_$KEY,其中$SECTION和$KEY需与virtuoso.ini中的驼峰式命名保持一致(区分大小写)。
例如:配置Database section下的ErrorLogFile项,需设置环境变量VIRT_Database_ErrorLogFile=error.log。
进入容器,通过ISQL执行dump_nquads过程,导出文件将保存至/my/path/to/the/virtuoso/db/dumps目录:
bashdocker exec -it my-virtuoso bash isql-v -U dba -P $DBA_PASSWORD SQL> dump_nquads ('dumps', 1, 10000000, 1);
详细说明参见Virtuoso官方文档。
手动导入
.nq格式的四元组文件(可压缩)放入宿主机的/my/path/to/the/virtuoso/db/dumps目录bashdocker exec -it my-virtuoso bash isql-v -U dba -P $DBA_PASSWORD SQL> ld_dir('dumps', '*.nq', 'http://foo.bar'); # 注册文件,第三个参数为目标图URI SQL> rdf_loader_run(); # 执行加载
ll_state=2表示加载完成):sqlselect * from DB.DBA.load_list;
详细说明参见Virtuoso批量RDF加载器文档。
自动导入
容器首次启动时,会自动加载数据库目录(/my/path/to/the/virtuoso/db)下toLoad子目录中的所有数据。默认图由DEFAULT_GRAPH环境变量指定(默认值为http://localhost:8890/DAV)。
通过ISQL执行备份命令:
bashdocker exec -i virtuoso_container mkdir -p backups docker exec -i virtuoso_container isql-v <<EOF exec('checkpoint'); backup_context_clear(); backup_online('backup_',30000,0,vector('backups')); exit; EOF
方法一:使用新容器恢复
停止当前运行的容器,通过新容器执行恢复:
bashdocker run --rm -it -v path-to-your-database:/data tenforce/virtuoso virtuoso-t +restore-backup backups/backup_ +configfile /data/virtuoso.ini
恢复完成后,新容器会退出,可重启原数据库容器。
方法二:启动时自动恢复
将备份文件放入/data/backups目录,通过BACKUP_PREFIX环境变量指定备份前缀,容器启动时自动恢复:
bashdocker run --name my-virtuoso \ -p 8890:8890 \ -p 1111:1111 \ -e DBA_PASSWORD=dba \ -e SPARQL_UPDATE=true \ -e BACKUP_PREFIX=backup_ \ -v path-to-your-database:/data \ -d tenforce/virtuoso
欢迎为本仓库贡献代码,可通过提交PR至master分支。新功能将先在tenforce/virtuoso:latest标签上测试,验证通过后,版本分支将基于master重base。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务