OpenLink Virtuoso Enterprise Edition 8.2 Docker Image
Copyright © 2018 OpenLink Software
Choosing an image
We’ve put together three Docker Images to choose from. The Enterprise Edition images require a version-matched license file (about which more details are below), just as if you were running on a local machine or in the cloud; the Open Source (“VOS”) image does not.
- Enterprise Edition 8.2 –
- Enterprise Edition 7.2 –
- Open Source (“VOS”) 7.2 –
The remainder of this article is focused on the first of these (Enterprise Edition 8.2); most of the content applies to all three, with minor, hopefully obvious, adjustments.
Downloading the image
$ docker pull openlink/virtuoso-closedsource-8
To check the version of the Virtuoso binary, you can use the following command:
$ 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.02.3309-pthreads as of Oct 31 2018 (30fcb64) Compiled for Linux (x86_64-generic-linux-glibc25) Hosted Runtime Environments: VDB Copyright (C) 1998-2018 OpenLink Software
Creating a sample Virtuoso instance
Here is a quick example of how to create a new virtuoso instance on your system:
$ 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
This will create a new Virtuoso database in the
my_virtdb subdirectory and starts a Virtuoso instance with the HTTP server listening on port
8890 and the ODBC / JDBC / ADO.Net / OLE-DB / ISQL data server listening on port
The docker image in running in foreground (with
--interactive) mode, so you can see what it is doing.
You should now be able to contact the Virtuoso HTTP server using the following URL:
You can shut down Virtuoso by pressing the CTRL and C buttons in that terminal session.
If the Virtuoso Enterprise Edition binary cannot find a license, it will start with a restrictive courtesy license license which allows a small number of concurrent ODBC / JDBC / ADO.Net / OLE-DB / ISQL connections, with a low limit on the maximum number of rows that can be retrieved in a query result-set, and terminates the instance after 10 minutes of use.
To unlock the full potential of Virtuoso, you can obtain a FREE Evaluation License via our License Generator Web Service.
Naturally, following successful evaluation, you can choose from a variety of Enterprise Edition licenses from our online shop or contact us (or your account manager) directly for more specialized Enterprise and/or VAR/ISV/OEM licenses.
Place the resulting
virtuoso.lic file in the newly created
database/ directory alongside the
virtuoso.ini on your local filesystem, so the docker image can pick it up on the next startup:
$ docker cp virtuoso.lic my_virtdb:/database $ docker stop my_virtdb $ docker start my_virtdb
When a new database is created, the docker image will use the Environment settings
DAV_PASSWORD to set passwords for the
dav user accounts.
DBA_PASSWORD environment variable is not set, a random password will be assigned to the
dba user account, and stored on the internal docker filesystem as
DAV_PASSWORD Environment variable is not set, it will be set to the
DBA_PASSWORD and stored as
These files will only be readable by the user that started the image. Commands like the following may be used to reveal the randomised passwords:
$ docker exec -i -t my_virtdb cat /settings/dba_password
Without this password, you will not be able to log in to the
dba account using either the
isql tool or the Virtuoso Conductor.
NOTE: Users are advised to immediately change the password and then remove this file from the filesystem.
In order to retain changes to the Virtuoso database, the database documents should be stored on the host file system.
The docker image exposes a
/database volume that can be easily mapped to a local directory on the filesystem. If this directory is empty, the docker image will put an initial
virtuoso.ini into the mapped directory and then proceeds to create a new database.
Stopping the image
When the docker image is running in foreground mode (with
--interactive), you can shut down Virtuoso by pressing the CTRL and C buttons in that terminal session. You can also use the following command on a different terminal:
$ docker stop my_virtdb
Restarting the image
Once the docker image has been registered with the
docker run or
docker create command on your local system, you can start it in the background using:
$ docker start my_virtdb
If you prefer to run the instance in foreground mode, you can use:
$ docker start -i -a my_virtdb
Checking the startup log
If the docker image is started in background (without
--interactive) mode, you can look at the recent output of the
virtuoso process by running:
$ docker logs my_virtdb
Using isql to connect
To connect to your running Virtuoso instance, you can use the following command:
$ docker exec -i my_virtdb isql 1111
You will be prompted for the
dba account password.
NOTE: If you provide an incorrect password multiple times, Virtuoso will lock the
dba account for a couple of minutes.
Using an existing database
If the mapped directory contains a
virtuoso.ini and accompanying database documents, the new docker image will attempt to use these.
NOTE: Directory paths referenced in the
virtuoso.ini should be relative to the internal directory structure of the docker image in order to work.