In our first article, we explored the first steps in building a Docker container. This is quite simple as you can see, but beyond the simplicity, we need to look at the importance of what it is that we are achieving with Docker. Eric explored the Ops view of a simple Docker use case, so now it's time to look at what the Dev side of the IT team sees as the reason to introduce Docker to our infrastructure.
Why Do Developers Like Docker?
Developers like Docker for several reasons:
- The Docker Hub has over 13,000 applications that are ready to be used so developers can build applications targeted to Docker in virtually any language they want
- It is easy for developers running different operating systems to collaborate on applications because the applications will run the same inside the Docker Engine on any operating system
- Docker is built for ease of automation: it is straightforward to automate the build pipeline and turn out application builds quickly
- Docker manages and tracks changes and dependencies in a Docker image so it is easy to communicate the configuration of a Docker image to system administrators
- Docker helps developers setup an environment quickly and get to what they are good at: writing code!
In short, developers like Docker because it makes them more productive. They are able to get an environment setup quickly, collaborate well with other developers running different operating systems, and ensure that the applications they are writing will work correctly in a production environment.
A developer only needs to install the Docker Engine runtime on his or her development machine and then through very simple commands he or she can setup a database, an application server, a cache, or any number of environments that the application will need.
Furthermore, by running the application in Docker, the developer has confidence that the application will work in a production environment and he will not have to deal with any more “it works on my machine” issues that, while the might frustrate you, are equally frustrating to the developer!
Containers really are the future of production deployment. Containers allow you to start from a pre-configured and working set of images and rapidly deploy your applications to a production environment. Containers come in many forms, from virtual machines to micro-containers that startup in a matter of seconds.
This article presented Docker, which is one of the most popular micro-containers. Its strategy is different from traditional virtual machines in that it leverages and shares the Docker Engine’s kernel with its running images, which means that Docker runtime environment do not need a full guest operating system in order to run. Applications are deployed with the libraries and binary files that it needs and no more.
Docker provides a “hub” that contains over 13,000 Docker applications that can be used to jumpstart your application development. In short, Docker is liked by developers and embraced by system administrators, which means that it is truly the future of virtualization.
The next article will take a look at another container technology: CoreOS and compare its strategy to the others we’ve reviewed in this series.
Image source: https://registry.hub.docker.com/search?q=library