Docker is a program that could be described in three words: deployment made easy. But it goes beyond simple project deployment to include data replication and even custom environments in a container.
This technology can be complicated for a complete beginner. But I think Docker is becoming very relevant with each passing year. So how do you get started learning?
In this post I’ve organized the absolute best Docker books to bring you from a complete novice up to a professional level. You’ll need to put in work to see improvements, but given enough time you may be surprised how easily Docker fits into your web workflow.
If you have no prior experience with containers or Docker management then I’d recommend The Docker Book. It teaches Docker in a slow and controlled manner to make sure you understand every little facet of the software.
Each lesson teaches theory and practice so you learn the benefits of Docker along with real-world practices. And for the price it’s the best deal you can find for an introductory book.
Every book from Manning Publishing has amazed me at every turn. Their book Docker in Action is no different and the author Jeff Nickoloff is a brilliant teacher.
Jeff has experience teaching Docker with major tech companies and speaking at big tech conferences. His book Docker in Action teaches the concepts behind Docker containers, how they work, and how to manage/install/distribute containers on a variety of OS’. Plus he shares security techniques for a typical Docker workflow.
Over 304 pages you’ll learn everything you’ve ever wanted to know about Docker. And best of all this book is practical with working exercises and live examples.
Not only will you learn how Docker works and how to apply it, but you’ll also learn the best ways of doing this for any project.
The top Docker best practices and security techniques take priority in this book. If you want a deep dive into practical Docker then you’ll probably enjoy this book. I also did a more detailed review of this title if you want to read more.
For a cheap yet detailed intro to Docker you might like this book written by David Larson. It’s only 40 pages long but it’s incredibly cheap and even easier to read.
Docker: The Complete Introduction To Using Docker Containers Today is nothing more than a basic instruction manual. The writing style targets less savvy developers who have no knowledge of containers or package/deployment programs.
Each chapter introduces a handful of new ideas and the lessons are short but sweet.
With such a cheap price tag you can’t expect a lot from this book. However it can get you caught up with all the Docker lingo to eventually help you move beyond the basics.
Practical solutions are always the best solutions because they inform and teach simultaneously. With Docker in Practice you’ll find over 100 lessons presented in the problem/solution paradigm.
This book teaches you how to look at problems and solve them using Docker’s main components and 3rd party extensions. These problems range from basic containers and configuration issues to complex projects like microservices, single-page webapps, and distributed deployment.
Later chapters get into DevOps topics like continuous delivery and automation. This is where Docker truly shines and it’s one of the best tools in a server automation workflow.
This is another Manning book so it comes with both a print + digital version. Excellent writing style with very accurate lessons. This book almost hits 400 pages long so it’s one of the better resources for technical Docker exercises.
But since the lessons teach in a problem/solution format you won’t get the beginner’s learning experience. This is a powerful resource but it helps if you have a bit of Docker knowledge under your belt.
Here’s a better book for complete beginners offering 268 pages of demos and live tutorials. The first chapter starts by introducing the value of Docker, why you’d use it, and who this book is made for(mostly Devops, sysadmins, and web developers).
The Docker Book holds your hand every step of the way starting with your very first installation of Docker. You’ll learn how to setup Docker on any computer, how to configure it for local projects, and how to work with each of Docker’s primary components.
In later chapters you’ll learn about extending Docker and working on top of the Docker API.
Learning how to manage and deploy containers will take up the largest amount of your time. But once you nail down this workflow it’ll be so much easier building new web projects and handling updates for live deployment.
Anyone brand new to Docker who has no idea where to start will definitely enjoy this simple yet nuanced walkthrough.
Many system administrators and DevOps people get into Docker for convenience. But web developers can also learn a lot from the Docker workflow since it’s becoming a crucial part of modern web development.
If you have a background in web dev then Learning Docker is the perfect book to get started. It approaches Docker from the perspective of a developer who understands web servers and deployment, but may not fully understand how Docker works or why it’s so special.
Early chapters explain the Docker engine, the value of Linux administration, and the basics of containers/images. The author walks you through each Docker command in great detail with working examples to practice.
By the end you’ll be comfortable running services in a container, deploying new projects, and debugging your Docker containers. This is a powerful guide for anyone with a background in development who wants to implement Docker into real world projects.
If you don’t understand the purpose of Docker then you’ll have no motivation to learn about it. Thankfully Using Docker by Adrian Mouat takes this idea and forces it into the limelight.
You’ll start by learning why Docker is so valuable and how containers work. This includes technical examples and workflows to help you understand how Docker might fit into your own project work. Then you quickly move onto practical examples teaching how to setup and configure Docker containers.
The continuous deployment chapters are exceptionally detailed and they’re also very important for the modern era. If you’re constantly making updates and testing then you can implement continuous deployment to push new changes live all the time.
Using Docker offers specific tips and tricks for debugging, logging, and more complex configurations for larger applications.
This is a great intro book for beginners and it’s also fantastic for intermediate-level users who want to go further with the platform.
Practical tutorials are the best resources for learning in the tech/IT field. Docker: Up & Running dives into the practical side of Docker by teaching how to package applications and maintain internal dependencies.
This process includes maintaining a consistent environment for your application, local testing, deploying, and scaling for large server-intensive projects.
Both authors for this book work as engineer at New Relic so they have real experience working in a sysadmin/devops environment. The goal of this book is to teach Docker from a genuinely practical perspective so you can apply everything you learn here into your own projects.
I’d recommend this to beginners who want to get into Linux administration for websites and larger server applications. Debugging and security are covered in great detail so this book will get you started on the right track.
Much of the work running a server involves maintaining the status quo. When problems arise you need to fix them, and hopefully make updates to avoid further problems going forward.
Monitoring Docker by Russ McKendrick teaches how to maintain tracking built into Docker systems. Docker comes with native tools that can help you track performance. But there are 3rd party tools like cAdvisor that you can plug into your Docker workflow for better metrics.
This book teaches you how to monitor for security breaches and resource issues within a Docker setup. You’ll learn how to work with Docker extensions and cloud-based solutions made for containerized platforms.
It is highly recommended that you understand the basics of Docker and know the workflow before picking up this book. It was written specifically for intermediate-to-advanced Docker users who want to improve their maintenance and tracking workflow across multiple projects.
More and more developers are moving into server management and Developing with Docker is one handy guide to bridge this gap. This field is typically referred to as DevOps and it’s growing quickly.
If you know how to develop and build webapps then you know enough to pick up this book. It teaches the absolute basics of Docker covering the technical terms for each step of the process from packaging to testing, shipping, and scaling.
It helps if you already have some knowledge of Linux and the command line. But this book covers enough information that you don’t really have to worry. And over 327 pages you can pretty much learn everything you need to know about Docker.
This is a fantastic intro book even if you don’t plan to use Docker professionally. Most topics are kept simple and to the point so you can learn Docker fundamentals without getting into the super advanced topics like continuous deployment at scale.
I’m often skeptical of all the “mastering” books on any subject, but this is worthy of consideration. Mastering Docker by Scott Gallagher isn’t a super advanced guide to high-level Docker applications.
Instead it’s a guide covering the more advanced features of Docker, including complex setups like automated server creation and merging Docker with other programs like Vagrant. You’ll also learn a bunch of security techniques aimed at large-scale enterprise platforms.
Scott explains different methods for creating environments with Docker compose. These environments can be managed through local servers, distributed server clusters, or cloud networks like AWS.
While the book’s title labels this as an advanced book on mastering Docker, I actually think it fits better for intermediate-level users. If you have at least some working background in Docker you can pick this up and learn many of the techniques.
But be advised it does read a bit scattered since it offers a ton of different solutions for different problems. This is great if you want a bigger view on Docker, but not so great if you just use Docker for basic day-to-day operations.
Not all cookbooks are created equal and most of the time I prefer programming cookbooks over service cookbooks. But with that said I think the Docker Cookbook by O’Reilly is truly valuable to admins who frequently work in the Docker environment.
The book spans 366 pages with over 130 recipes for solving common Docker tasks and problems. Each recipe comes with detailed explanations and common pitfalls to avoid during the process.
You’ll mostly learn about advanced Docker techniques like mounting data across multiple servers, distributed containers, detailed monitoring, networking across multiple hosts, accessing Docker in the cloud and merging with other platforms like Kubernetes.
It should be obvious this book is not for beginners. It covers very complex topics for server/package management and goes into great detail for each one.
If you’re fairly adept at using Docker and want a handy desk reference then this is the book for you. With so many recipes and solutions to common problems I can’t think of any other book that comes close in value for a regular Docker user.
Packt Publishing has their own Docker cookbook aimed towards the networking features of deployment and testing. Networking is crucial to the Internet as a whole, so it’s naturally a big part of the sysadmin/devops workflow with Docker.
The Docker Networking Cookbook shares solutions for built-in Docker networking features and 3rd party extensions. Troubleshooting and problem solving are necessary while working in a Docker environment and this cookbook offers tips for some of the most common problems.
You’ll learn about Linux networking, custom Docker networks, and building your own local networks for Docker containers. Many recipes get into frameworks like LibNetwork and Flannel which can serve both small and large projects alike.
Networking and security go hand-in-hand so they’re both covered in great detail for each recipe. If you’re looking for solutions to Docker security concerns and network server configurations then this book should be near your desk at all times.
However since not every Docker user wants to get into the technicals of networking I can’t recommend this for everyone. It’s best suited to devops engineers and systems administrators who combine Docker with other programs in a server environment.
From all the books in this post I guarantee there’s something here for everyone. Complete beginners might start with an easy read like The Docker Book or Docker in Action, both very practical guides when starting from square one.
More advanced users can pick around based on whatever they want to learn. But I think the Docker Cookbook by O’Reilly is an excellent resource for any serious Docker user.
Deployment and container management is becoming the norm in web development. If you have the time and willpower to get into Docker I highly recommend doing so. It won’t be an easy learning curve but once you start using it for real projects you’ll understand Docker’s true power.