In this roadmap, you will learn what containers are and what distinguishes them from virtual machines, why you might want to use them to run applications, and how the Apptainer container platform differs from Docker. We survey different registries where you can find and download container images. We then introduce commands for running your Apptainer container and controlling its interactions with the host. Finally, we describe how you can extend the capabilities of a container at TACC by accessing one or more of the host's GPUs from it, launching multiple container instances that work in parallel using MPI, and creating and activating a custom Python environment for use inside your containers.

Objectives

After you complete this topic, you should be able to:

  • Describe what containers are and what distinguishes them from virtual machines
  • Explain why Apptainer is often favored for running applications at HPC centers
  • Identify and use registries where you can find and download container images
  • Use the Apptainer command-line interface to run and control containers
  • Specify host directories that are to be mounted inside a container
  • Access the host's GPUs from inside a container
  • Launch multiple containers in order to run an MPI-parallel application
  • Create and activate a custom Python environment for use in containers
Prerequisites

This roadmap covers basic information on containers and Apptainer usage through the command line interface. Some familiarity with Linux is preferred, but it is not necessary.

Requirements

There are no requirements for this roadmap.

©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Access Statement
CVW material development is supported by NSF OAC awards 1854828, 2321040, 2323116 (UT Austin) and 2005506 (Indiana University)