Taverna Server Docker
Docker image set up for a generic Taverna Server.
See the documentation for details.
For production use you should use this as a base image and set more secure
- Base image: tomcat 7
- Container: Tomcat 7/OpenJDK 7 (base image tomcat)
- Port: 8080 (http), 8009 (AJP)
- Taverna user:
- Taverna password:
- Taverna Server root:
- Shared volumes:
- REST API:
http://localhost:8080/rest/(replace with full hostname)
- WSDL API:
http://localhost:32778/soap?wsdl(replace with full hostname)
Please refer to the Docker User Guide for
the following sections.
Using the pre-built image
You can pull the pre-built image in the usual way:
$ sudo docker pull taverna/taverna-server:<tag>
When running the container you will need to map the port number that tomcat
listens on to a port on your machine. In most cases you will also want to run
the container as a daemon.
The following example runs the container tagged with
2.5.4 as a daemon,
gives it a name (
t254) and maps the port 8080 on the local machine
to go to the Tomcat port (8080) within the Docker container.
$ sudo docker run -p 8080:8080 -d --name t254 taverna/taverna-server:2.5.4
The following addresses are now accessible from your Web browser:
http://localhost:8080: Taverna Server root
Note that the hostname you first access Taverna Server with will be used in
subsequent replies, so remember to access with the full hostname if the
installation is to be used outside
The docker image has 3 default users included, see the file users.properties for more info.
taverna: password 'taverna'
taverna_alt: password 'qwerty'
admin: password ADMIN
You should change these via the admin interface available via
Building the image from scratch
Clone this repository to your local machine and run:
$ sudo docker build -t <yourname>/<imagename>:<tag> server/
$ cd server $ sudo docker build -t <yourname>/<imagename>:<tag> .
tag can be whatever you like but should be
sensible if you will be uploading the resulting image to the
You can now run the resulting image as above:
$ sudo docker run -p 8080:8080 -d <yourname>/<imagename>:<tag>
--name option if you would rather not let docker assign a default name
for your container.
Debugging a running container
The container share some useful volumes so that you can see what is happening
while it is running. You can simply run another container and connect to these
volumes to see logs and temporary files in the Taverna Server container. The
volumes exported are:
/tmp: Taverna Server temporary data for each workflow execution.
You can see the Tomcat logs from a running docker container named
docker logs t254
Assuming you started your Taverna Server container with the name
to view the shared data run:
$ sudo docker run -i -t --volumes-from t254 ubuntu:14.04 /bin/bash
This will start an Ubuntu 14.04 container and give you an interactive bash
shell so that you can inspect the Taverna Server
cd into the
# cd /tmp # ls
Problem routing interaction requests internally
(T3-809). A workaround is
to ensure that the tomcat port in the container is always mapped to the same
port number on the local machine for now, e.g.
$ sudo docker run -p 8080:8080 -d --name t254 taverna/server:2.5.4
- The URL you first access the Taverna Server with is remembered by the server
for the returned links, so be sure to use the full hostname to avoid
http://localhost:8080/restunless you only want to expose
the server to localhost. This can be a problem if you are using
--linkto access the server from a different docker image, as
you will need to ensure a consistent hostname.