Docker Architecture Big Picture Overview

Mastering something like Docker demands a lot more than just knowing the commands. Real expertise demands that you know how things fit together under the hood and know about docker architecture completely.

So we’ll talk about what a container actually is, which I think you’ll find interesting, then we’ll do a high-level view of the kernel internals, then a short description of the Docker engine itself. After that, we’ll start drilling in.

So, the Big Picture, the Docker Architecture. This module’s really about two things. The low-level kernel stuff that we used to build containers and the Docker Engine stuff that makes it all easy.

So, starting out with the kernel stuff, all a container really is, is this ring-fenced area of an operating system, with some limits on how much system resources it can use, and that’s it.

What container is in custom definition

What container is in custom definition

And that is a container definition, right there. Okay, obviously, we can have more than one, and I know it’s a really simplified definition.

In fact, it’s my own personal definition, I suppose, because the thing is, there’s actually no official definition for a container, and you know what, you can even build all different types of them.

Now, to build them, we’ll leverage a bunch of low-level kernel stuff, in particular, we use namespaces and control groups, and these fit into our diagrams just like this image below.

container components loke Conrol groups and namespaces

container components loke Conrol groups and namespaces

However, right, I know this picture makes it look really simple, but these are low-level kernel constructs, and out of the box, they are a pig to work with.

Hard problems with control groups and namespaces

Hard problems with control groups and namespaces

In fact, so much so, that they’ve actually been around for ages, but they’ve remained obscure and esoteric, all because of how hard they are, and that is where Docker comes in to play.

Docker comes into play between control groups and namespaces

Docker comes into play between control groups and namespaces

It’s actually the Docker engine, that makes all of this really easy, and that’s our two main topics. The kernel building blocks, and the Docker engine.

Now, sticking with the big picture for another second, okay, the Docker engine is just like any other engine, and I don’t just mean IT stuff, so even like a car or a motorbike engine, it is modular.

So, although we might interface with it, through the CLI, directly to the API up here, a single end-point here, under the covers, it’s actually a bunch of smaller, moving parts.

Workflow of docker working

Workflow of docker working

Now, don’t worry too much about the names, right, we’ll get into that later. But the workflow is pretty much like this.

We used the command line to create a new container, the client takes the command and makes the appropriate API request to the container’s create endpoint here in the engine, right?

Create a new container, yeah? And the engine here pulls together all of the required kernel stuff and out pops a container!

Complete Docker Architecture

Complete Docker Architecture

It is a beautiful thing. But this is all big-picture stuff. Time to turn things up a notch, and take a look at the kernel stuff that underpins it all in the next tutorials.

So keep visiting this website to stay updated with the latest tutorials on docker.

Hope you guys like the tutorial, feel free to drop any comments in the comment section down below.

Leave a Comment

Your email address will not be published. Required fields are marked *