Containers, specifically Linux containers popularised by Docker, offer a way to package an application and its dependencies in a language agnostic way. The package, a container image, can be versioned and published to a registry. Typically, a descriptor, e.g. Kubernetes’ manifests, are also required to describe how to run the image as a container such as:

  • How many instances to run
  • The resources to give the container
  • Configuration for ingress

Running containers requires orchestration ranging from: