Before you dive into configuring and installing Docker, a quick survey is in order to explain what Docker is and what it can bring to the table. It is a powerful technology, but not a tremendously complicated one. In this chapter, we’ll cover the generalities of how Docker works, what makes it powerful, and some of the reasons you might use it. If you’re reading this, you probably have your own reasons to use Docker, but it never hurts to augment your understanding before you dive in.
Don’t worry—this shouldn’t hold you up for too long. In the next chapter, we’ll dive right into getting Docker installed and running on your system.
Docker can simplify both workflows and communication, and that usually starts with the deployment story. Traditionally, the cycle of getting an application to production often looks something like the following (illustrated in Figure 2-1):
Application developers request resources from operations engineers.
Resources are provisioned and handed over to developers.
Developers script and tool their deployment.
Operations engineers and developers tweak the deployment repeatedly.
Additional application dependencies are discovered by developers.
Operations engineers work to install the additional requirements.
Loop over steps 5 and 6 N more times.
The application is deployed.