Build Containers From Scratch in Go

Ali Josie
The Startup
11 min readNov 7, 2020

--

In the last few years, the use of containers has increased significantly. The concept of containers have been around for several years, but it was Docker’s easy-to-use command line that started to popularize containers among developer in 2013.

In this series, I am trying to demonstrate how containers work underneath and how I did develop the vessel.

What is vessel?

vessel is an educational-purpose project of mine that implements a tiny version of Docker to manage containers. It does not use either containerd or runc, it uses a set of Linux features to be able to create containers.

vessel is neither production-ready nor well-tested software. It’s just a simple project to learn more about containers.

Let’s start: reading about Docker!

I found it useful to take a look at Docker docs and gain insight into containers first, before starting to code.

Docker, regarding its documentation, takes advantage of several features of the Linux kernel…

--

--

Ali Josie
The Startup

Software Engineer & Information Security Enthusiast