Containers are portable, self-contained software packages that include an application and all its dependencies, such as libraries and configuration files, allowing consistent execution across different environments; containers are effectively code that defines the environment in which the application runs.

  • Portable: Containers bundle everything an application needs to run, allowing them to be moved between environments — such as laptops, servers, or the cloud. – Self-contained: Each container includes its own file system, processes, and network interfaces, isolating it from the host system and other containers.
  • Consistent execution: By including all dependencies within the container, applications run reliably and consistently, regardless of the underlying infrastructure.
  • Effectively code that defines the environment: A container image serves as a blueprint, specifying the operating system libraries, environment variables and settings, effectively acting as “code” that defines the runtime environment.

Further reading