本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
版权所有 © 2020–2025 OpenLink Software
请注意,仅 repository/docker/openlink/ 中的Docker容器直接来自 OpenLink Software。我们建议使用这些容器镜像,除非您需要经过编辑的克隆版本提供的特定功能,此时也建议告知我们您的需求及满足情况,以便我们确保您获得最佳的Virtuoso使用体验。
请向 OpenLink社区论坛 或 Virtuoso开源项目 报告任何问题。
如果您有支持合同,还可以通过 OpenLink支持网站创建支持案例。
要将最新的Virtuoso 8.3 Docker镜像拉取到本地系统,可使用以下命令:
$ docker pull openlink/virtuoso-closedsource-8
要检查Virtuoso二进制文件的版本,可使用以下命令:
$ 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实例的快速示例:
$ 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镜像在下次启动时加载:
$ 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中。
这些文件仅对启动镜像的用户可读。可使用以下命令查看随机密码:
$ 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。也可在其他终端使用以下命令:
$ docker stop my_virtdb
使用docker run或docker create命令在本地系统注册Docker镜像后,可使用以下命令在后台启动:
$ docker start my_virtdb
如果希望以前台模式运行实例,可使用:
$ docker start -i -a my_virtdb
如果Docker镜像以后台模式(不带-i或--interactive)启动,可通过以下命令查看virtuoso进程的最近输出:
$ docker logs my_virtdb
要连接到运行中的Virtuoso实例,可使用以下命令:
$ docker exec -i my_virtdb isql 1111
系统将提示输入dba账户密码。
注意:如果多次提供错误密码,Virtuoso将锁定dba账户几分钟。
如果映射目录包含virtuoso.ini和相关数据库文件,新Docker镜像将尝试使用这些文件。
注意:virtuoso.ini中引用的目录路径应相对于Docker镜像的内部目录结构才能正常工作。
要将最新的Virtuoso 8.3 Docker镜像拉取到本地系统,可使用以下命令:
$ docker pull openlink/virtuoso-closedsource-8
要检查Virtuoso二进制文件的版本,可使用以下命令:
$ 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。
$ docker create ..... ... --publish 1112:1111 \ ...
8890映射此端口可提供对Virtuoso HTTP服务器的外部访问。
如果要在同一主机系统上运行多个Docker镜像,可使用-p或--publish命令行选项映射本地系统的空闲端口。例如,要将此镜像作为默认Web服务器,可将主机的端口80映射到Docker系统的默认HTTP端口8890。
$ 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实例的元数据中。
示例:
$ 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密码更改为其他值后删除此文件。
示例:
$ 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429