Docker on Windows, written by Elton Stoneman, is a great book for Windows developers who want to learn how to effectively use Docker. It covers many aspects from Docker: images and containers, but also newer features such as multi-stage builds. The book is a perfect fit for engineers, architects, and administrators who are already building and delivering server applications running on Windows.
Initially, I was wondering why there should be a book about Docker on Windows. Docker, a technology providing containers, allows users to create instances of operating systems without the overhead of virtual machines. Docker runs on many operating systems; Windows 10 and Windows Server 2016 were added in 2016. Unfortunately, many tutorials found on the internet contain specific instructions for Linux based services. This book not only uses Microsoft specific services for all its examples, it also provides many tips and tricks throughout the book to make development a bit easier.
Throughout the book, the author uses one main use case: an old ASP.NET MVC app called Nerd Dinner. The reader learns how he can pull this old monolithic application apart into a modular application. At the end of the book, users can deploy and monitor app they broke down in a front end, database, and analytics services.
The book starts with the basic Docker concepts, such as images, containers, registries, and swarms, and shows you how to get Docker running on Windows 10, Windows Server 2016, and on a VM in Azure. Examples of Docker applications show how you can set up a Microsoft dotnet nanoserver in a Dockerfile. The book explains possible commands in a Dockerfile, and command line arguments users can give during the build process. This is also the place where multi-stage builds are introduced: a feature recently added to Docker. Thanks to multi-stage builds readers of the book (and developers) don't have to install any tools on their machine (except for Docker). They can start developing faster and in a less error-prone way.
Intermediate chapters continue to show how Docker is able to contribute to developers and IT Pros. Developers who don't want to type over the many samples in the book can download them from GitHub, or pull the pre-compiled images from Docker Hub. In the book the NerdDinner application gets torn apart. Features are added to the application using more containers that can be developed independently. The result is a distributed solution that can be managed with Docker Compose. The author goes further and describes how you can deploy this solution to a server or your local computer with Docker swarm.
For IT Pros there are chapters which will help with evaluating Docker for production. The author covers security in the Docker platform, from building secure images and setting up a secure software supply chain, to running a secure swarm. You can administer Docker containers with the tools you currently use - like IIS Manager and Server Manager, and there is a chapter which covers new types of management tools, built for containers.
Final chapters show some tips and tricks about how you can power a continuous deployment pipeline with Docker. At the end the reader can run a Bonobo Git server in Docker, and package and running their project with a Jenkins automation server in Docker. Seasoned Visual Studio developers will be happy to learn how they can run their applications in containers during development, and still debug their code using Visual Studio.
The book ends with advice for adopting Docker in your own projects. There is guidance for running a proof-of-concept to modernize a traditional application with Docker, and there are three real-world case studies. The case studies show Docker on Windows in production, from small projects to large ones.
The hand-on approach of the book is what makes it a great guide for existing Windows developers. Elton Stoneman makes it easy for starters in Docker to understand how this new tool will improve their development cycle, but also describes enough to make the book interesting for people who already have Docker knowledge.
Docker on Windows is available from Amazon and direct from Packt publishing. The author is also covering each of the Dockerfiles from the book in a weekly blog series.
About the author
Elton Stoneman is a Microsoft MVP, Pluralsight author and InfoQ editor, and he works for Docker, Inc. Elton blogs and tweets about Docker, .NET and Azure and is a regular conference speaker. He’s looking forward to the next DockerCon.