Scientific tools often require installing different dependencies in a controlled environment. Containers allow you to logically package your application together with libraries and other dependencies, providing isolated environments for running your software services. Containerized applications can be run in an isolated runtime environment independent of the actual environment (e.g., private data center, the public cloud, or even a developer’s personal laptop) in which the applications are running in. These are recently gaining popularity as a standard way to distribute, deploy, and run services by developers and system administrators. This course will introduce the basic concepts of containers and their deployment in supercomputing environment at CSC.