版权所有 © 2020–2025 OpenLink Software
请注意,仅 repository/docker/openlink/ 中的Docker容器直接来自 OpenLink Software。我们建议使用这些容器镜像,除非您需要经过编辑的克隆版本提供的特定功能,此时也建议告知我们您的需求及满足情况,以便我们确保您获得最佳的Virtuoso使用体验。
请向 OpenLink社区论坛 或 Virtuoso开源项目 报告任何问题。
如果您有支持合同,还可以通过 OpenLink支持网站创建支持案例。
要将最新的Virtuoso 8.3 Docker镜像拉取到本地系统,可使用以下命令:
sh$ docker pull openlink/virtuoso-closedsource-8
要检查Virtuoso二进制文件的版本,可使用以下命令:
sh$ docker run openlink/virtuoso-closedsource-8 version This Docker image is using the following version of Virtuoso: OpenLink Virtuoso Universal Server (Enterprise Edition) Version 08.03.3331-pthreads as of May 21 2024 (226e54fa56) Compiled for Linux (x86_64-ubuntu_focal-linux-gnu-glibc2.31) Hosted Runtime Environments: VDB Copyright (C) 1998-2024 OpenLink Software
以下是在系统上创建新Virtuoso实例的快速示例:
sh$ mkdir my_virtdb $ cd my_virtdb $ docker run \ --name my_virtdb \ --interactive \ --tty \ --env DBA_PASSWORD=mysecret \ --publish 1111:1111 \ --publish 8890:8890 \ --volume `pwd`:/database \ openlink/virtuoso-closedsource-8:latest
这将在my_virtdb子目录中创建新的Virtuoso数据库,并启动Virtuoso实例,HTTP服务器监听端口8890,ODBC/JDBC/ADO.Net/OLE-DB/ISQL数据服务器监听端口1111。
Docker镜像以前台模式(-i或--interactive)运行,因此您可以查看其运行状态。
现在,您可以通过以下URL访问Virtuoso HTTP服务器:
http://localhost:8890/
在该终端会话中按CTRL和C键可关闭Virtuoso。
如果Virtuoso二进制文件未找到许可证,将以限制性的“试用许可”启动,该许可允许少量并发ODBC/JDBC/ADO.Net/OLE-DB/ISQL连接,查询结果集的最大行数限制较低,且实例在使用10分钟后终止。
要解锁Virtuoso的全部功能,可通过许可证生成器Web服务获取免费评估许可证。
评估成功后,您可以从在线商店选择各种商业版许可证,或直接联系我们(或您的客户经理)获取更专业的企业版和/或VAR/ISV/OEM许可证。
将生成的virtuoso.lic文件放在本地文件系统上新创建的database/目录中(与virtuoso.ini同级),以便Docker镜像在下次启动时加载:
sh$ docker cp virtuoso.lic my_virtdb:/database $ docker stop my_virtdb $ docker start my_virtdb
创建新数据库时,Docker镜像将使用环境变量DBA_PASSWORD和DAV_PASSWORD分别设置dba和dav用户的密码。
如果未设置DBA_PASSWORD环境变量,将为dba用户分配随机密码,并存储在Docker内部文件系统的/settings/dba_password中。
如果未设置DAV_PASSWORD环境变量,将使用DBA_PASSWORD的值,并存储在/settings/dav_password中。
这些文件仅对启动镜像的用户可读。可使用以下命令查看随机密码:
sh$ docker exec -i -t my_virtdb cat /settings/dba_password
没有此密码,您将无法使用isql工具或Virtuoso Conductor登录dba账户。
注意:建议用户立即更改密码并从文件系统中删除此文件。
为保留Virtuoso数据库的更改,数据库文件应存储在主机文件系统上。
Docker镜像公开/database卷,可轻松映射到文件系统的本地目录。如果该目录为空,Docker镜像将在映射目录中放入初始virtuoso.ini,然后创建新数据库。
当Docker镜像以前台模式(带-i或--interactive)运行时,在该终端会话中按CTRL和C键可关闭Virtuoso。也可在其他终端使用以下命令:
sh$ docker stop my_virtdb
使用docker run或docker create命令在本地系统注册Docker镜像后,可使用以下命令在后台启动:
sh$ docker start my_virtdb
如果希望以前台模式运行实例,可使用:
sh$ docker start -i -a my_virtdb
如果Docker镜像以后台模式(不带-i或--interactive)启动,可通过以下命令查看virtuoso进程的最近输出:
sh$ docker logs my_virtdb
要连接到运行中的Virtuoso实例,可使用以下命令:
sh$ docker exec -i my_virtdb isql 1111
系统将提示输入dba账户密码。
注意:如果多次提供错误密码,Virtuoso将锁定dba账户几分钟。
如果映射目录包含virtuoso.ini和相关数据库文件,新Docker镜像将尝试使用这些文件。
注意:virtuoso.ini中引用的目录路径应相对于Docker镜像的内部目录结构才能正常工作。
要将最新的Virtuoso 8.3 Docker镜像拉取到本地系统,可使用以下命令:
sh$ docker pull openlink/virtuoso-closedsource-8
要检查Virtuoso二进制文件的版本,可使用以下命令:
sh$ docker run openlink/virtuoso-closedsource-8 version This Docker image is using the following version of Virtuoso: OpenLink Virtuoso Universal Server (Enterprise Edition) Version 08.03.3319-pthreads as of Sep 9 2020 (b5a3cfa1e0) Compiled for Linux (x86_64-generic-linux-glibc25) Hosted Runtime Environments: VDB Copyright (C) 1998-2020 OpenLink Software
OpenLink Virtuoso企业版Docker镜像公开了多个可配置或映射到本地机器的资源。
1111映射此端口可提供对Docker镜像的外部访问,以便从主机系统或其他Docker镜像使用Virtuoso客户端提供程序(如ODBC、JDBC、ADO.Net、OLE-DB、iSQL)进行连接。
如果要在同一主机系统上运行多个Docker镜像,可使用-p或--publish命令行选项将本地系统的空闲端口(如1112)映射到Docker系统的默认isql端口1111。
sh$ docker create ..... ... --publish 1112:1111 \ ...
8890映射此端口可提供对Virtuoso HTTP服务器的外部访问。
如果要在同一主机系统上运行多个Docker镜像,可使用-p或--publish命令行选项映射本地系统的空闲端口。例如,要将此镜像作为默认Web服务器,可将主机的端口80映射到Docker系统的默认HTTP端口8890。
sh$ docker create ..... ... --publish 80:8890 \ ...
Docker镜像启动后,可在浏览器中使用以下URL连接Virtuoso:
http://localhost/
/database此卷包含virtuoso.ini、virtuoso.lic和Virtuoso数据库使用的所有文件。
创建或运行任何Docker容器时,数据持久化涉及两个重要参数:
使用-n或--name参数的命名与未命名容器
使用-v或--volume参数的映射与未映射卷
如果创建Docker镜像时未指定容器名称(未命名)和卷映射,容器停止后镜像将被销毁,虽然主机文件系统中的目录不会立即删除,但可能难以定位和恢复其中的数据。
只要至少使用--name参数,Docker容器可以停止和重启而不会丢失数据。
如果创建Docker镜像时未将卷映射到本地硬盘目录,Docker系统将在其自身文件系统中创建目录(在Linux上,Docker镜像位于/var/lib/docker/containers下)。如果文件系统空间不足,或要升级镜像而不丢失现有数据,这可能会导致问题。使用未命名卷还会在升级Docker镜像时难以保留现有数据库。
虽然在某些情况下可能需要未命名容器与映射卷,但我们建议在创建的所有Virtuoso容器上同时使用--name和--volume参数。
/initdb.d此目录可包含shell(.sh)和Virtuoso PL(.sql)脚本的混合,可执行以下功能:
安装其他Ubuntu软件包
从远程位置(如Amazon S3存储桶、Google Drive或其他位置)加载数据
将数据批量加载到Virtuoso数据库
在数据库中安装其他VAD包
添加新的Virtuoso用户
向Virtuoso用户授予权限
重新生成全文索引或其他初始数据
脚本仅在初始数据库创建时运行一次;Docker镜像后续重启不会重新运行这些脚本。
脚本按字母顺序运行,因此建议脚本名称以序号开头,以便明确排序。
出于安全考虑,Virtuoso将以特殊模式运行.sql脚本,且不会响应其SQL(1111)和/或HTTP(8890)端口上的连接。
每个.sql脚本结束时,Virtuoso会自动执行checkpoint,确保更改完全写回数据库。这对于使用批量加载函数rdf_loader_run()或手动更改数据库ACID模式的脚本非常重要。
所有初始化脚本运行完成后,Virtuoso将正常启动,并开始监听SQL(1111)和HTTP(8890)端口上的请求。
DBA_PASSWORD_FILE此环境变量应与向Docker镜像传递敏感信息的安全选项结合使用。启动脚本将读取Docker内部文件系统中此文件的内容,并在内部将其分配给DBA_PASSWORD环境变量。在此情况下,DBA_PASSWORD设置不会记录在Docker实例的元数据中。
示例:
sh$ echo -n 'verysecretpw' | docker secret create dba_secret - $ docker service create .... \ ... --secret dba_secret \ --env DBA_PASSWORD_FILE=/run/secrets/dba_secret \ ...
另请参见:
docker secrets(仅Docker Swarm)
kubernetes secrets
DAV_PASSWORD_FILE详情参见DBA_PASSWORD_FILE。
DBA_PASSWORD如果通过命令行选项-e、--env、--env-file或.yml文件的**environment部分设置此环境变量,创建新数据库时,该值将被分配为dba**账户的初始密码。
如果此变量设置为instance-id,Docker镜像将尝试从Amazon AMI上的EC2注册表获取此值。如果失败或Docker容器未在AMI上启动,该变量将被视为未设置。
如果未设置此变量,创建新数据库时将生成随机密码并分配给dba账户。
密码存储在Docker容器内部的/settings/dba_password中,建议您通过conductorWeb界面或isql命令将dba密码更改为其他值后删除此文件。
示例:
sh$ docker create ..... ... --env DBA_PASSWORD=mysecret \ ...
注意:由于环境变量存储在Docker镜像的元数据中,任何能够运行docker inspect命令的同一台机器上的用户都可以轻松看到初始密码。如果这可能成为问题,建议结合使用'docker secrets'选项和DBA_PASSWORD_FILE选项。
DAV_PASSWORD如果通过命令行选项-e、--env、--env-file或.yml文件的**environment部分设置此环境变量,创建新数据库时,该值将被分配为dav**账户的初始密码。
如果未设置此变量,将使用DBA_PASSWORD的值同时作为dba和dav账户的密码。
密码存储在Docker容器内部的/settings/dav_password中,建议您通过conductorWeb界面或isql命令将dav密码更改为其他值后删除此文件。
VIRTUOSO_LIC_FILE此环境变量与向Virtuoso闭源Docker镜像传递敏感信息的安全选项结合使用。启动脚本将读取Docker内部文件系统中此文件的内容,并将其复制到/database/virtuoso.lic文件。
另请参见:
docker secrets(仅Docker Swarm)
kubernetes secrets
VIRTUOSO_INI_FILE此环境变量与以下选项之一结合使用,向Docker镜像传递信息。启动脚本将读取Docker内部文件系统中此文件的内容,并将其复制到/database/virtuoso.ini文件,而不是从Virtuoso安装中安装默认的virtuoso.ini文件。
请注意,virtuoso.ini中的所有路径设置应基于Docker镜像的内部文件系统结构,而不是引用主机系统上的目录路径。可以使用--mount等命令行选项将主机系统的其他目录通过“绑定挂载”绑定到Docker实例中。
安装virtuoso.ini文件后,启动脚本将解析环境变量,以允许按下一段所述对virtuoso.ini文件进行其他更新。启动脚本还将重写[Plugin]部分,以启用hosting目录中安装的所有插件。
另请参见:
docker config
docker secrets(仅Docker Swarm)
kubernetes secrets
docker bind mount
通过命令行选项-e、--env、--env-file或.yml文件的**environment**部分创建Virtuoso Docker实例时,可使用环境变量添加或覆盖virtuoso.ini文件中的任何参数。
这些环境变量的命名格式如下:
VIRT_SECTION_KEY=VALUE
其中:
VIRT是用于将此类变量分组的公共前缀(始终为大写)
SECTION是virtuoso.ini中[节]的名称(不区分大小写)
KEY是节中的键名称(不区分大小写)
VALUE是要写入键的文本(区分大小写)
这些变量名称的SECTION和KEY部分可以大写(最常用)或混合大小写,无需与virtuoso.ini中使用的大小写完全匹配。SECTION和KEY名称部分不进行验证,因此任何错误都可能导致设置无法正常工作。
以下名称均引用相同的设置:
VIRT_Parameters_NumberOfBuffers(与virtuoso.ini中的节和键名大小写匹配)
`VIRT_PARAMETERS
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429