Containers at XSEDE
Last update: February 4, 2021

What are Containers?

Containers are a standard unit of software that package up code and all its dependencies so that an application can run quickly and reliably on different computing platforms. There are a number of types of containers but the 2 widely used versions are Docker and Singularity. The differences between them are subtle but distinctive.

Singularity is a runtime container, like Docker, but doesn't require the specialized privileges that Docker requires. As such, many sites find Singularity a useful tool not only for administrators, but users as well.

Containers vs. Virtual Machines

Containers are similar to virtual machines (VMs) since they include everything needed to run in a single package. However, unlike VMs, containers do not include a guest OS. Instead containers run on top of a "container platform," like Docker or Singularity, which is installed on an operating system. See figure 1 below. Containers are "lightweight," meaning they require far less disk space than VMs. Additionally, multiple containers can run side-by-side on the same container platform.

Containers vs VMs

XSEDE Container Resources

Each XSEDE site offers different container related resources. Cloud resources like Jetstream focus specifically on providing users with container resources. Other sites and resources may have different focus areas but still provide access to containers.

As mentioned above, Docker and Singularity are the two most common types of containers. Some XSEDE sites discourage usage of Docker as it requires users to have escalated root privileges. Another popular container tool, Kubernetes is available at most XSEDE sites, but is more widely used on Jetstream which provides users assistance using the tool.

Each site's area of expertise and offering for Containers is listed below:

IU/TACC's Jetstream

Basic Docker container support is provided through pre-installed Docker and Docker Compose packages, available in many of the staff-maintained and featured CentOS 7, CentOS 8, Ubuntu 16, Ubuntu 18, and Ubuntu 20 images. Users of Jetstream's Atmosphere management interface have additional easy-to-use built-in command line options to quickly install Docker and Singularity on any image. Since Jetstream is a cloud provider, most container technologies are available – users get root access so they can use Docker, Singularity, CharlieCloud, Shifter, or whatever else they may need.

Other Helpful Links:

The XSEDE link to Jetstream is Jetstream User Guide.

PSC's Bridges

PSC Supports Singularity containers only. PSC offers a variety of pre-built containers for users, or users are welcome to build and deploy their own. This can be done through a reservation, the ‘interact' mode, or by requesting a VM and running containers on that VM.

TACC's Stampede2

Stampede2 is intended primarily for parallel applications scalable to tens of thousands of cores, as well as general purpose and throughput computing. Since their focus is on larger jobs, there is nothing currently documented about VMs or Containers. If users ask, they are directed to the Singularity web site. Singularity web site

Quick Start Guide

A Quick Start guide can help users become familiar with Singularity and containers. One offered by Singularity is available here. Singularity Quick Start Guide

XSEDE Container List

See the following web site for more information about public container registries:

Consulting and Extended Support

Users needing assistance finding and using container software, services, training, or needing lightweight consulting may contact the XSEDE help desk at The Novel and Innovative Projects (NIP) team can provide this type of lightweight assistance. XSEDE allocated projects needing more in depth consulting on data preparation, data flows, data analytics, data locality, data visualization and other data techniques can request Extended Collaborative Support Services (ECSS) assistance. The Novel and Innovative Projects (NIP) area of ECSS provides lightweight consulting to assist in this process. This can be requested via