Introduction

Last updated on 2024-07-08 | Edit this page

Estimated time: 5 minutes

Overview

Questions

  • What is docker?
  • What is the point of these exercises?

Objectives

  • Learn about Docker and why we’re using it

What is Docker?


Let’s learn about Docker and why we’re using it!

Regardless of what you encounter in this lesson, the definitive guide is any official documentation provided by Docker.

From the Docker website

What is a container?

A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.

In short, Docker allows a user to work in a computing environment that is well defined and has been frozen with respect to interdependent libraries and code and related tools. The computing environment in the container is separate and independent from your own working area. This means that you do not have to worry about software packages that you might already have installed with a different version.

What can I learn here?


As much as we’d like, we can’t give you a complete overview of Docker. However, we do hope to explain why we run Docker in the way we do so that you gain some understanding. More specifically, we’ll be showing you how to set up Docker for not just this workshop, but for interfacing with the CMS open data in general

Are there any alternatives to Docker?

If you’re working on a remote cluster rather than a local computer, one alternative you may want to try out is an apptainer container. More info is in Episode 4: Apptainer for CMS open data.

Key Points

  • Docker is a set of products to deliver and run software in packages called containers.
  • Software containers are widely used these days in both industry and academic research.
  • We use software containers during the hands-on sessions to provide the a well-defined software environment for exercises.