Docker: Up and Running by Sean P. Kane (co-authored with Karl Matthias in earlier editions) is a practical, hands-on guide to understanding and deploying Docker, the containerization platform that has fundamentally reshaped how software is built, shipped, and run. The book walks readers from foundational concepts — what containers are, how they differ from virtual machines, and why they matter — through the full lifecycle of working with Docker in real-world environments. It is aimed at developers and operations engineers who want to move beyond theory and actually integrate Docker into their workflows.
The authors adopt a clear, methodical voice that balances conceptual explanation with concrete command-line examples. Each chapter builds on the last, moving from installing Docker and running basic containers to crafting Dockerfiles, managing images, networking containers together, and handling data persistence with volumes. Later chapters tackle production concerns: orchestration fundamentals, security hardening, logging, and monitoring. The book is notably grounded in practical wisdom rather than marketing enthusiasm — the authors are candid about Docker’s limitations and the operational complexity that containerized environments can introduce.
By the end of the book, readers have a thorough picture not just of Docker’s mechanics but of the philosophy behind immutable infrastructure and the DevOps culture that makes containerization valuable. The writing is direct and example-driven, making it accessible even to readers who are new to Linux internals, while still offering enough depth to satisfy engineers already familiar with the ecosystem.
Key takeaways
- Containers vs. virtual machines: Docker containers share the host OS kernel and isolate processes using Linux namespaces and cgroups, making them far lighter and faster to start than full VMs — a distinction with significant architectural and cost implications.
- The image-layer model: Docker images are built from stacked, read-only layers defined in a Dockerfile; understanding this layering system is essential for writing efficient images, minimizing rebuild times, and keeping image sizes manageable.
- Dockerfile best practices: Choices like instruction ordering, combining RUN commands, using minimal base images (such as Alpine Linux), and leveraging multi-stage builds have outsized effects on image size, build speed, and security surface area.
- Networking and service discovery: Docker provides multiple networking modes (bridge, host, overlay) and built-in DNS-based service discovery for containers, which forms the basis for connecting microservices without hardcoding IP addresses.
- Data persistence with volumes: Because containers are ephemeral by design, stateful data must be handled deliberately through named volumes or bind mounts; the book stresses treating containers as cattle, not pets, and designing applications accordingly.
- Security is not automatic: Running containers as root, using bloated base images, and leaving default configurations in place are common mistakes; the book covers capabilities, seccomp profiles, read-only filesystems, and image scanning as layers of a defense-in-depth approach.
- Production readiness requires orchestration awareness: While Docker alone handles single-host container management, the book introduces the need for orchestrators like Kubernetes or Docker Swarm for scheduling, self-healing, and scaling across clusters, positioning Docker knowledge as the essential foundation for that next step.