About Docker

Docker is an application that allows tools and their dependencies to be packaged into discrete runtime environments. These environments, containers, are built from images and are stored inside an image registry.

For an overview of Docker, please see the Docker website. Learn more about Docker images, containers and image registries below.

Images

A Docker image is a read-only file used to produce Docker containers. An image is composed of 'layers' of other images, and any change that is made to an image is carried out by adding a new layer.

The dependencies of Docker layers define an ordering, and any layer that does not depend on any other layer is called a base image. Typically this layer will describe the operating system for the environment.

Docker images can be uploaded to the BioData Catalyst Image Registry, where they are referenced by repositories. Once uploaded, you can run these tools on the Platform. Workflows will execute the tools in series, inside the containers that they are installed in.

Containers

A Docker container is a runnable instance of an image. It can host software applications and their dependencies, which can be run from many diverse environments.

Containers are built from images, but feature a read-write layer on top, so, unlike images, are interactive and can store state. This means that you can run applications inside them. After any executions in your Docker container, you can save a snapshot of the resulting state as another image.

Using Docker ensures that your tools will run on BioDataCatalyst powered by Seven Bridges no matter what format they are in, and removes the possibility of conflicts between your local development environment and the execution environment of the Platform. Since there is no need to conform to any proprietary format when uploading your tools, you can easily run them elsewhere too.

Image Registry

An image registry stores Docker images. Each registry is organized into collections of images, called repositories.

The BioData Catalyst Image Registry

Docker images uploaded to the BioData Catalyst Image Registry are further organized into repositories. Once the images are uploaded to the BioData Catalyst Image Registry, you can run these tools on the Platform. Workflows will execute the tools in series inside their Docker containers.