
stain/jena-fuseki本Docker镜像用于运行Apache Jena Fuseki,这是一个带有Web界面的SPARQL 1.1服务器,后端基于Apache Jena TDB RDF三元组存储。
有关Jena或Fuseki的使用问题,可联系jena用户列表。
不同Docker层添加的文件适用不同许可证:
/jena-fuseki):Apache License, version 2.0,详见:docker run stain/jena-fuseki cat /jena-fuseki/NOTICE/usr/local/openjdk-11/):GPL 2.0 with Classpath exception,详见镜像内/usr/local/openjdk-11/legal//目录):GPL 3及兼容许可证,详见镜像内/usr/share/*/license尝试运行镜像:
bashdocker run -p 3030:3030 stain/jena-fuseki
Apache Jena Fuseki将在 http://localhost:3030/ 可用。
如需在不同端口暴露Fuseki,修改-p的第一部分:
bashdocker run -p 8080:3030 stain/jena-fuseki
加载RDF图需以admin用户登录。首次运行时(当/fuseki卷为空目录)会自动生成管理员密码,可在容器输出或通过docker logs <容器名>查看。
可通过环境变量覆盖管理员密码:
bashdocker run -p 3030:3030 -e ADMIN_PASSWORD=pw123 stain/jena-fuseki
通过JVM_ARGS环境变量设置Java参数(默认堆内存1200 MiB):
bashdocker run -p 3030:3030 -e JVM_ARGS=-Xmx2g stain/jena-fuseki
Fuseki数据存储在容器内的/fuseki卷中。若不使用docker restart或以下机制,数据会在每次运行间丢失。
先创建数据卷容器:
bashdocker run --name fuseki-data -v /fuseki busybox
使用--volumes-from启动Fuseki(-d后台运行):
bashdocker run -d --name fuseki -p 3030:3030 --volumes-from fuseki-data stain/jena-fuseki
指定主机目录挂载(适用于磁盘空间或性能需求):
bashdocker run -d --name fuseki -p 3030:3030 -v /ssd/data/fuseki:/fuseki stain/jena-fuseki
注意:/fuseki卷同一时间只能被一个Fuseki容器访问。
查看日志:
bashdocker logs fuseki
停止容器:
bashdocker stop fuseki
重启容器(保留卷和端口配置):
bashdocker restart fuseki
通过环境变量TDB=2启用TDB v2:
bashdocker run -p 3030:3030 -e TDB=2 stain/jena-fuseki
启用后需使用tdbloader2加载数据(详见下文)。
对使用fuseki-data数据卷的容器fuseki进行升级:
bashdocker pull stain/jena-fuseki docker stop fuseki docker rm fuseki docker run -d --name fuseki -p 3030:3030 --volumes-from fuseki-data stain/jena-fuseki
启动时通过环境变量创建空数据集:
bashdocker run -d --name fuseki -p 3030:3030 -e FUSEKI_DATASET_1=mydataset -e FUSEKI_DATASET_2=otherdataset stain/jena-fuseki
将创建mydataset和otherdataset两个空数据集。
Fuseki支持通过Web界面和服务上传RDF数据集,大数据集建议通过命令行直接加载。镜像包含load.sh脚本,调用tdbloader从/staging卷加载数据。
查看帮助:
bashdocker run stain/jena-fuseki ./load.sh
加载前需停止Fuseki容器(或加载到新数据集):
bashdocker stop fuseki
示例:将主机/home/stain/ops/chembl19目录下的cco.ttl.gz和void.ttl.gz加载到fuseki-data卷的chembl19数据集:
bashdocker run --volumes-from fuseki-data -v /home/stain/ops/chembl19:/staging \ stain/jena-fuseki ./load.sh chembl19 cco.ttl.gz void.ttl.gz
提示:可使用通配符(如'*.ttl')加载多个文件,避免本地扩展需用单引号。若未指定文件名,默认加载/staging下匹配以下模式的文件:*.rdf *.rdf.gz *.ttl *.ttl.gz *.owl *.owl.gz *.nt *.nt.gz *.nquads *.nquads.gz。
对运行中的fuseki容器执行:
bashdocker exec -it fuseki /bin/bash -c 'tdbloader2 --loc chembl19 /staging/{cco.ttl.gz,void.ttl.gz}'
重启容器后Fuseki将识别数据:
bashdocker restart fuseki
在Fuseki中进入“管理数据集”,点击“添加新数据集”,勾选“Persistent”,输入与load.sh中相同的数据库名(如chembl19)。然后在“数据集”下拉菜单中选择,尝试“信息”和“查询”功能。
如需加载多数据集或命名图,可直接使用tdbloader和TDB汇编文件。Fuseki TDB数据集存储在/fuseki/databases/子目录。
示例:通过汇编文件加载:
bashdocker run --volumes-from fuseki-data -v /home/stain/data:/staging stain/jena-fuseki \ ./tdbloader --desc=/staging/tdb.ttl
汇编文件中需使用容器内路径(如/staging/dataset.ttl)。
通过以下方式检查/fuseki目录:
bashdocker run --volumes-from fuseki-data -it ubuntu bash
修改后重启容器:
bashdocker restart fuseki
如需添加JAR但不修改/fuseki卷,可将JAR放入/fuseki-extra,启动时会作为/fuseki/extra添加到类路径。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务