Containers: An Ultimate Guide

Containers are the number one way of packaging and distributing compute code. And for good reason. Containers have a series of benefits that are worth knowing about and understanding.

By the end of this article you should understand what a Containers is, the benefits of Containers, and the main tools that you should know when it comes to Containers. 

What is a Container?

A Container is a lightweight method of isolating process code. A Container usually comes with instructions on how to run the software that’s running in the isolated process. With Containers we can write code that is portable and runs reliably the same no matter the host machine that it’s running on.

What are the main Benefits of Containers?

Ease of Portability — A container should run the same no matter what host it is running on. We can therefore easily move a Container between machines, such as engineers local machines and not have to worry about the software behaving differently.

Clear Running Instructions — Containers typically come with a set of instructions to run them. These run instructions make it very transparent about how the Container will operate when it is executed / executing.

High Availability / Scale — Whilst not an inherent benefit of Containers. They do work well in environments that require high amounts of scale. When Containers are written in an ephemeral, stateless manner they can be easily scaled to run hundreds of containers side-by-side.

Work well with Microservices — Again, not an inherent benefit but containers work well with the Microservice architectural pattern. Containers can be a useful tool when breaking down a monolith into Microservices.

What are the main Container tools?

  • Docker — Docker is the current number one Container tool.
  • Kubernetes — A tool for running and managing many containers together.
  • AWS ECS, GPC GKE — Cloud specific implementation of Container orchestration platforms.

Dive in!

Here is every article that I’ve written about Containers: