Public Repository

Last pushed: 3 years ago
Short Description
Docker container for use in the TDS workshop
Full Description



Running the TDS Docker Container

If this is your first time running docker containers on your machine, please see the "First Time Users of Docker" section near the end of this document.

Before running the docker container, choose a location on disk where you would like to run the workshop materials. For example, let's use /home/username/Desktop/workshop. Set an environmental variables called WORKSHOP_HOME

export WORKSHOP_HOME=/home/username/Desktop/workshop

Go to your $WORKSHOP_HOME directory and create the following files, making sure they have read and write access for other:

mkdir data
mkdir -p content/thredds
mkdir tomcat-logs
chmod -R o+wr .

Once this is complete, the following command will allow you to test the docker image with access to the Tomcat and TDS logs, as well as the TDS configuration files:

docker run --rm -it -p 8080:8080 -p 8443:8443 -v $WORKSHOP_HOME/content/thredds:/usr/local/tomcat/content/thredds -v $WORKSHOP_HOME/tomcat-logs:/usr/local/tomcat/logs -v $WORKSHOP_HOME/data:/data unidata/tds-workshop:latest

The TDS configuration files are located in


the tomcat log files will be located in


and the data directory will be


The data inside the docker container will be located in


so make sure any <datasetRoot> elements in your catalogs reference /data as the top level data directory. Note that the data associated with the default catalogs remains in the same location (<TDSCONTENTDIR>/thredds/public/) and the default catalogs work without modification.

These three locations are specified on the command line with the -v options. If any of these directories are not empty, they will override what is in the container. The -v option does not utilize the union filesystem, so it's a complete overwrite of a directory, just like mount.

Note if you have run this docker container before, you may want to update to get the latest changes first:

docker pull unidata/tds-workshop:latest

Access your TDS using

http://<host ip>:8080/thredds/catalog.html

where host-ip is the ip address of your docker host. This can be found using

docker-machine ls

A tomcat user "workshop" has been defined with password "MeUser". This user has the roles of manager-gui, tdsConfig, and tdsMonitor.

This container has been configured with SSL enabled using a self-signed certificate. If you use this in production, which you SHOULD NOT DO, you will look like a total N00B because your self signed certificate has "please hack me" all over it (no really, it does...check it out in your browser and see for yourself). Do not embarrass yourself by using this container on a production server.

First Time Users of Docker

The goal of this section is to install docker and get the docker daemon running. Once the daemon is running and ready to go, you may start executing the docker run commands found at the beginning of this document.

First Time Users on Windows

Follow the instructions here

We have had issues using boot2docker on windows (as recommended in the link above), so another option is to create a linux based Virtual Machine and follow the instructions for "First Time Users on Linux."

First Time Users on Linux

Follow the instructions for your platform as listed here

MacOSX (Unidata recommended workflow with docker-machine)

Download and install [VirtualBox] (

Download and install docker-machine

Create a host virtual machine to run docker images - let's call it docker-host-tds:

docker-machine create --driver virtualbox docker-host-tds

This downloads a boot2docker linux iso image and starts up a lightweight vm using virtualbox. This virtual machine will run the Docker daemon, which will allow us to run docker containers. If you would like to see the information about your host VMs, use:

docker info

Note that the VM must be running and you mush have the correct correct environmental variables set:

eval "$(docker-machine env docker-host-tds)"

To verify that the machine was created and is indeed running, run:

docker-machine ls

Now you should be able to run the docker commands and play with the tds workshop container! Note that you will need to execute the eval command in each new terminal you wish to use to run docker.

Docker Pull Command