Blog
Thoughts on engineering, design, and building great products.
Setting Up a Linux Environment and Getting Comfortable with the Shell
Create a Linux environment to practice with using a container, understand the shell and the command prompt, run your first commands, and learn the keyboard shortcuts that make typing commands much faster.
What Is Linux and Why Developers Should Learn It
Series opener: the difference between the Linux kernel and a distro, why nearly every server and container runs Linux, the Unix philosophy behind the command line, and how to use a Linux container as a lab right on your Mac/Windows machine.
What Docker Is and Why You Should Use It
Series opener: what problem Docker solves, how it differs from a virtual machine, the core concepts (image, container, registry), and the learning path from the basics to Docker Swarm.
Docker Architecture: Client, Daemon, containerd and runc
A deep dive into Docker architecture: the client and daemon talk over a REST API, and beneath dockerd sit containerd and runc. Understand what really happens when you type docker run, with diagrams and commands you can verify yourself.
What a Container Is Made Of: Namespaces, Cgroups and Union Filesystem
A deep dive into the lowest layer: three Linux kernel features — namespaces (isolation), cgroups (resource limits) and union filesystem (layers) — turn an ordinary process into a container. With diagrams and commands you can verify yourself.
Installing Docker and Running Your First Container
Install Docker for your OS, then run your first container and master the full lifecycle: run, ps, logs, exec, stop, rm. With a container state diagram and a cleanup section.
Images and the Layer Mechanism: Pull, Tag, Docker Hub
Where images come from and what they're made of: how to read an image name, the Docker Hub registry, layers shared across images, digests, and managing images on your machine with pull/images/tag/rmi/history.