
本镜像为 Apache Jena Fuseki 的 Docker 封装,包含 SeCo 扩展,灵感源自 https://github.com/stain/jena-docker/tree/master/jena-fuseki%E3%80%82
Docker Hub 地址:https://hub.docker.com/r/secoresearch/fuseki/
主要用途:提供基于 TDB 的 RDF 数据存储与查询服务,支持 SPARQL 1.1 端点、文本索引、持久化存储及 SHACL 验证等功能,适用于构建语义数据服务或作为 RDF 数据集的分发载体。
ds 数据集,使用 TDB 存储引擎,集成 Lucene 文本索引tdb:unionDefaultGraph=true,支持默认图查询匹配所有命名图的并集(默认图本身除外)tdbloader、textindexer、tdbstats 等脚本,支持批量加载 RDF 数据http://localhost:3030,管理员密码通过 ADMIN_PASSWORD 环境变量设置tdb:unionDefaultGraph=true:默认图查询匹配所有命名图的并集(注意:存储的默认图不属于此并集,需通过 <urn:x-arq:DefaultGraph> 显式访问)QUERY_TIMEOUT 环境变量调整(单位:毫秒)基础端点(默认启用)
http://localhost:3030/ds/sparql(支持 SELECT/ASK/CONSTRUCT/DESCRIBE)http://localhost:3030/ds/data(支持 RDF 数据读取)可启用端点
通过环境变量启用(详见「环境变量配置」):
http://localhost:3030/ds/update(支持 INSERT/DELETE 操作)http://localhost:3030/ds/data(支持 RDF 数据写入)http://localhost:3030/ds/shacl(支持 SHACL 约束验证)数据加载工具
容器内置 tdbloader、textindexer、tdbstats 脚本,用于将 RDF 数据加载到 TDB 模型。示例可参考 https://github.com/SemanticComputing/congress-legislators/blob/master/Dockerfile%E3%80%82
默认情况下,容器删除后数据会丢失,可通过以下方式实现持久化:
方案 1:卷/绑定挂载(推荐运行时数据更新)
挂载 /fuseki-base/databases 目录至宿主机,适用于需动态更新数据或保持镜像轻量化的场景:
bash# 示例:绑定宿主机 ./fuseki-data 目录到容器数据库目录 docker run ... --mount type=bind,source="$(pwd)"/fuseki-data,target=/fuseki-base/databases ...
方案 2:自定义 Dockerfile(推荐静态数据集)
基于本镜像构建新镜像,在构建阶段加载数据,适用于静态、只读数据集分发:
dockerfileFROM secoresearch/fuseki # 复制 RDF 数据到镜像 COPY data.rdf /data/ # 使用 tdbloader 加载数据到 TDB RUN tdbloader --loc /fuseki-base/databases/ds /data/data.rdf
| 环境变量 | 作用 | 取值范围 | 默认值 |
|---|---|---|---|
ADMIN_PASSWORD | 管理员密码(必填) | 字符串 | 无 |
ENABLE_DATA_WRITE | 启用图存储端点写权限 | true/false | false |
ENABLE_UPDATE | 启用 SPARQL 更新端点 | true/false | false |
ENABLE_SHACL | 启用 SHACL 验证端点 | true/false | false |
QUERY_TIMEOUT | 查询超时时间(毫秒) | 正整数 | 60000(60秒) |
USE_SYSTEM_CA_CERTS | 使用系统 CA 证书(用于 HTTPS 访问) | 空值/1(启用) | 空值(禁用) |
bashdocker build --squash -t secoresearch/fuseki .
基础运行命令
bashdocker run --rm -it -p 3030:3030 --name fuseki \ -e ADMIN_PASSWORD=your_secure_password \ -e ENABLE_DATA_WRITE=true \ -e ENABLE_UPDATE=true \ -e QUERY_TIMEOUT=30000 \ --mount type=bind,source="$(pwd)"/fuseki-data,target=/fuseki-base/databases \ secoresearch/fuseki
支持通过管理 UI 添加新数据集
bash# 创建本地目录 mkdir fuseki-data fuseki-configuration # 复制默认配置文件并修改(按需启用端点) cp -p assembler.ttl fuseki-configuration/ # 运行容器,挂载数据和配置目录 docker run --rm -it -p 3030:3030 --name fuseki \ -e ADMIN_PASSWORD=your_secure_password \ --mount type=bind,source="$(pwd)"/fuseki-data,target=/fuseki-base/databases \ --mount type=bind,source="$(pwd)"/fuseki-configuration,target=/fuseki-base/configuration \ secoresearch/fuseki
Docker Compose 示例
yamlversion: '3' services: fuseki: image: secoresearch/fuseki ports: - "3030:3030" environment: - ADMIN_PASSWORD=your_secure_password - ENABLE_UPDATE=true - QUERY_TIMEOUT=60000 volumes: - ./fuseki-data:/fuseki-base/databases - ./fuseki-configuration:/fuseki-base/configuration restart: unless-stopped
若在 OpenShift 中以非 root 用户运行,需确保数据目录权限:
dockerfile# 在自定义 Dockerfile 中添加(构建阶段) RUN chgrp -R 0 $FUSEKI_BASE \ && chmod -R g+rwX $FUSEKI_BASE
Note:若通过绑定挂载自定义 assembler.ttl,不建议使用环境变量(如 ENABLE_DATA_WRITE)修改端点权限,可能导致文件权限错误。此时应直接编辑 assembler.ttl 配置端点。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务