Containers Part 2 – Understanding Docker

Previously in part 1, we covered containers at a high level, including how they scale, alternatives and properties. Now in this second post we find out what Docker is, how it runs on Linux, and how images work. And we’ll do all this without the usual analogies of containers and ships, but instead with restaurants & food. Sound good? Well, keep reading…

What is Docker?

Docker is the dominant container technology (as of 2018); with around 79% of organisations in a 2017 survey[1] saying Docker is their primary method for running containers.

There is a tendency to conflate Docker with containers and assume they are one and the same. This is not true. Continue reading

Containers Part 1 – What are Containers?

One of my 2018 learning goals is to become more familiar with containers. This blog post (first of a series) is intended to help broaden my own understanding of containers; hopefully it is also of use to others.

What is a Container?

A container is a type of application virtualisation that isolates and sandboxes application processes within an operating system (OS).

On Linux, a container is a process (or multiple), isolated from other processes through namespaces. The container sees a separate isolated filesystem:

overview_of_container

Overview of how a container runs on Linux

Continue reading