Typical use cases

Docker is the ideal way of deploying applications such as:

  • Web applications that need a proxy server, database and application code, and a consistent operating environment
    • Examples: Galaxy (a bioinformatics platform), GitLab (a git host), Ghost (blogging platform)
  • Analysis pipelines or pipeline stages that require many runtimes (Python, Perl, Java etc.) and many tools (Samtools, GATK, VEP)
    • Examples: Pipelines written in CWL, WDL, Snakemake, Nextflow
  • Testing and continuous integration, allowing your tests to run in a consistent environment with a very precisely defined set of dependencies
    • Examples: Jenkins, Drone CI
  • Complex or fragile applications that would be difficult to compile locally
    • Examples: PennCNV, hap.py
  • Self-contained analyses that need a specific and reproducible environment