How-to: Docker for the Discovery Environment

For a more complete and up to date guide on how to Dockerize apps for the Discovery Environment, please go to Dockerizing Your Tools for the CyVerse Discovery Environment.

Why?

Docker, a type of virtualization for software distribution, has been adopted for integrating software that runs on the Discovery Environment's Compute Cluster.  This allows users to create a Docker file, which describes the steps needed to create a Docker Image containing the software requested by the user, and have iPlant rapidly deploy it to the Discovery Environment.  This is much faster and easier than the previous way of having to download and install software from source onto iPlant's computational grid (Condor Cluster).  In addition, using Docker Images permits bundling complicated software dependencies and keeping them separated (avoiding software conflicts), permits versioning of software more easily, and makes it easy to redeploy the Docker Images on different compute environments (XSEDE, Amazon, etc.)

To learn more about Docker: https://www.docker.com/whatisdocker

(From: http://www.rightscale.com/blog/sites/default/files/docker-containers-vms.png)

Steps:

  1. Create an environment to use Docker (Virtual Box)
  2. /wiki/spaces/HDFDE/pages/51446269
  3. Based on Step 2, create a Dockerfile
  4. Send Dockerfile to iPlant
  5. Create a User-Interface for your tool (in the Discovery Environment)