本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Copyright © 2019–2025 OpenLink Software
请注意:只有 repository/docker/openlink/ 中的Docker容器是直接来自 OpenLink Software。我们建议使用这些容器镜像,除非您需要经过编辑的克隆版本提供的特定功能,此时也建议告知我们您的需求及满足情况,以便我们确保您获得最佳的Virtuoso使用体验。
如遇任何问题,请向 OpenLink社区论坛 或 Virtuoso开源项目 报告。
如果您有支持合同,还可以通过 OpenLink支持网站创建支持案例。
要将最新的Virtuoso 7.2 Docker镜像拉取到本地系统,可使用以下命令:
$ docker pull openlink/virtuoso-opensource-7
要检查Virtuoso二进制文件的版本,可使用以下命令:
$ docker run openlink/virtuoso-opensource-7 version [openlink/virtuoso-opensource-7:7.2.13-r19-g8273aad-ubuntu] 此Docker镜像使用的Virtuoso版本如下: Virtuoso Open Source Edition (Column Store) (multi threaded) Version 7.2.13.3240-pthreads as of Jun 10 2024 (a1fd8195b) Compiled for Linux (x86_64-ubuntu_focal-linux-gnu) 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-opensource-7: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。
创建新数据库时,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账户。
注意:建议用户在将dba密码更改为其他值后立即删除此文件,可通过Conductor Web界面或isql命令进行修改。
为保留对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 7.2 Docker镜像拉取到本地系统,可使用以下命令:
$ docker pull openlink/virtuoso-opensource-7
要检查Virtuoso二进制文件的版本,可使用以下命令:
$ docker run openlink/virtuoso-opensource-7 version [openlink/virtuoso-opensource-7:7.2.13-r19-g8273aad-ubuntu] 此Docker镜像使用的Virtuoso版本如下: Virtuoso Open Source Edition (Column Store) (multi threaded) Version 7.2.13.3240-pthreads as of Jun 10 2024 (a1fd8195b) Compiled for Linux (x86_64-ubuntu_focal-linux-gnu) Copyright (C) 1998-2024 OpenLink Software
OpenLink Virtuoso Open Source Edition Docker镜像公开了多个可配置或映射到本地机器的资源。
1111此端口可映射以提供对Docker镜像的外部访问,以便使用任何Virtuoso客户端提供程序(如ODBC、JDBC、ADO.Net、OLE-DB、iSQL)从主机系统或其他Docker镜像连接。
如果要在同一主机系统上运行多个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镜像时未指定容器名称(未命名容器)和卷映射,容器停止后此Docker镜像将被销毁,虽然目录不会立即从主机文件系统中删除,但可能难以定位和恢复其中的数据。
只要至少使用--name参数,Docker容器即可停止和重启而不会丢失数据。
如果创建Docker镜像时未将卷映射到硬盘上的本地目录,Docker系统将在其自身文件系统中创建目录(在Linux上,Docker镜像位于/var/lib/docker/containers下)。如果文件系统不够大,或要升级到新版本镜像而不丢失现有数据,这可能会导致问题。使用未命名卷还会在升级到新版本Docker镜像时保留现有数据库带来困难。
虽然在某些情况下可能倾向于使用未命名容器和映射卷,但建议在创建的所有Virtuoso容器上同时使用--name和--volume参数。
/initdb.d此目录可包含shell(.sh)和Virtuoso PL(.sql)脚本的混合,可执行以下功能:
VAD软件包脚本仅在初始数据库创建时运行一次;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 \ ...
另请参见:
DAV_PASSWORD_FILE详情参见DBA_PASSWORD_FILE。
DBA_PASSWORD如果通过命令行选项-e、--env、--env-file或.yml文件的**environment部分设置此环境变量,其值将在创建新数据库时被分配为dba**账户的初始密码。
如果此变量设置为ami-id,Docker镜像将尝试从Amazon AMI上的EC2注册表获取此值。如果失败或此Docker容器未在AMI上启动,该变量将被视为未设置。
如果未设置此变量,将为dba账户生成随机密码并分配为初始密码。
密码将存储在Docker容器内的/settings/dba_password中,建议在通过Conductor Web界面或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中,建议在通过Conductor Web界面或isql命令将dav密码更改为其他值后删除此文件。
VIRTUOSO_LIC_FILE此环境变量与向Virtuoso闭源Docker镜像传递敏感信息的安全选项结合使用。启动脚本将读取Docker内部文件系统上此文件的内容,并将其复制到/database/virtuoso.lic文件。
另请参见:
VIRTUOSO_INI_FILE此环境变量与向Docker镜像传递信息的以下选项结合使用。启动脚本将读取Docker内部文件系统上此文件的内容,并将其复制到/database/virtuoso.ini文件,而不是安装Virtuoso安装中的默认virtuoso.ini文件。
请注意,virtuoso.ini中的所有路径设置都应基于Docker镜像的内部文件系统结构,不能直接引用主机系统上的目录路径。可使用--mount等命令行选项将主机系统的其他目录绑定挂载到Docker实例中。
安装virtuoso.ini文件后,启动脚本将解析环境变量,以允许按下一段所述对virtuoso.ini文件进行其他更新。启动脚本还将重写[Plugin]部分,以启用hosting目录中安装的所有插件。
另请参见:
virtuoso.ini使用-e、--env、--env-file命令行选项或.yml文件的**environment**部分创建Virtuoso Docker实例时,可添加或覆盖virtuoso.ini文件中的任何参数。
这些环境变量的命名格式如下:
VIRT_SECTION_KEY=VALUE
其中:
VIRT是用于将此类变量分组的公共前缀 (始终为大写)SECTION是virtuoso.ini中的[section]名称 (不区分大小写)KEY是节中的键名 (不区分大小写)VALUE是要写入键的文本 (区分大小写)这些变量名称的SECTION和KEY部分可以大写(最常用)或混合大小写编写,无需与virtuoso.ini中使用的大小写完全匹配。对SECTION和KEY名称部分不进行验证,因此任何错误都可能导致设置无法正常工作。
以下名称均引用相同的设置:
VIRT_Parameters_NumberOfBuffers(与virtuoso.ini中的节和键名大小写匹配)VIRT_PARAMETERS_NUMBEROFBUFFERS(推荐的环境变量命名方式)VIRT_parameters_numberofbuffers(可选)VALUE是区分大小写的字符串,如果包含空格或其他特殊字符,应使用单引号(')或双引号(")括起来。
如果VALUE设置为'-',则SECTION中的KEY条目将被删除。
示例:
$ docker create .... \ ... \ -e VIRT_PARAMETERS_NUMBEROFBUFFERS=100
免费版仅支持 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