Docker

By the end of GitHub, BookNest has a Git 1,932 history and a workflow that tests it on every push, but it still runs the old way: someone installs Node.js 24 2,131 and PostgreSQL 18 1,289 on each machine, sets six environment variables, copies the source over and starts the processes by hand. Every difference between machines is a chance for "it works on my machine."

Docker 514 closes that gap. It packages an application and everything it needs into an image and runs it as an isolated container that behaves the same on any Linux kernel. The BookNest image you build here is the one that Jenkins 8,793 builds in Jenkins and Kubernetes 5,150 runs in Kubernetes. Everything in this chapter runs on Docker Engine 29.8.1 514 , Compose v5.5.1 514 and Buildx 0.37.1 4,514 , installed directly in Ubuntu 26.04 225 under WSL2 6 , without Docker Desktop 514 . It starts beneath the tooling, because a container you understand is far easier to debug than one you only know how to start.

What you will learn:

Sections