Container image we'll need for the workshop: https://www.dropbox.com/s/ho2sqlayp6qad2w/fedora.tar?dl=0<br>
"Containers are Linux" is an interesting and bold statement that you might have read in blogs or seen on T-shirts. Do you know what it really means though?
In this workshop, we will guide you through the processes of running a fully functioning container without the usage of tools such as Docker, Podman or Kubernetes. Indeed, everything you need to start a container on your laptop is a couple of commands like chroot, unshare, mount and few others - all of them natively present on most Linux distributions. We believe that this hands-on experience will help you understand how containers are implemented on the low level.
Requirements: Linux workstation (virtual machine will do just fine). Even though it's possible to run containers on other operating systems with the usage of specialized tools, we won't have capacity to guide you through that process. We'll be using programs like
curl,
tar or
top that should be already present at any modern Linux distribution.
During the workshop we'll all be working with the same tar archive. You can download it here:
link will be added before the workshopCredits:
The main inspiration for us was the great
Containers from Scratch blog post by Eric Chiang.
Additional sources:
If you want to delve deeper into this topic, here are some great sources.
Containers are Linux post on Red Hat blog
Cgroups, namespaces, and beyond: what are containers made from? - DockerCon EU talk by Jérôme Petazzoni (Docker)
Linux Container Primitives: cgroups, namespaces, and more! - Comprehensive explanation by Samuel Karp (AWS)
Containers unplugged: Linux namespaces - Linux namespaces explained in-depth by Michael Kerrisk (Linux man-pages project)