Containers (Singularity and Docker)
Suppose that you develop or use some software on your computer that you would like to use on the HPCC. If that software requires many dependencies or a tricky setup to work properly, it may be difficult to transfer over to the HPCC. This is a prime opportunity to employ containers to simplify your workflow and get you started on the HPCC!
A Linux container provides an environment that's different from the host computer you may be running on (e.g., your laptop or the HPCC). For example, you could run a different version of Linux (e.g., running Alpine on our Ubuntu system). One advantage of containers is if your software requires a newer version of system libraries (e.g. glibc) than is available in our operating system, then you can run your software in a container. Another advantage is that many pieces of software provide containers that you can download and start working with immediately, no matter what computer/operating system/software stack you may be using.
The following three pages explain container-usage:
- Docker: Docker is the most popular tool to work with containers. This tutorial walks you through an example of running containers and building your own.
- Singularity Introduction: Though Docker is the most popular way to work with containers, it requires permissions that users are not allowed on the HPCC. Instead, HPCC systems use a (Docker compatible) tool called Singularity. This tutorial walks you through the basics of using Singularity to run containers (created with Docker or Singularity) on the HPCC.
- Singularity Advanced Topics: This page serves as reference for some more advanced topics related to tweak your usage of Singularity on the HPCC.