I chose to read and write a blog post about Docker for my Week two post. I chose Docker because it is an important tool in the development community today. And because it runs in the background while we work. What Docker is actually doing, and how it accomplishes that are abstracted from us. So I wanted to learn more about how Docker works, and why so many teams are using it today.
With Docker, developers can run their applications in containers, instead of a virtual machine. A container is a unit of software that contains everything that an application needs to run on a host computer. The container is the same for all developers that access it.
Containers are an enticing alternative to Vitual machines because they have much less intensive system requirements. A VM simulates hardware and has a complete operating system, but a docker container does not. Instead, a container runs on a single linux instance. This allows developers to run multiple docker containers simultaneously. And saves the company money in server costs.
Docker containers also work well with the agile methodology of Continous Deployment. This means that developers are integrating and deploying their code quickly and regularly. Agile methodologies are becoming the industry standard. With Agile, the development process is broken into smaller units of work, that are divided amongsts small teams. Docker helps Agile teams collaborate within a shared version of their application within a container.
Docker is used by large companies in enterprise software where they are sometimes building massive applications. Docker containers make workloads more portable. As different containers can run different versions of an application, that can be running on seperate servers.
Over the summer I did an internship where I worked on enternprise .NET web applications. During my internship, we used docker containers for our Dev environment when building web applications. And we also used a Docker container for our shared PostGreSQL databases. This allowed us to work with the same sample data, in our databases, and work in the same Dev environment, before sending the next update to User Acceptance Testing.
Reading this blog has helped me understand how Docker works and why it is popular. And has given me a new perspective on why my company uses Docker. I will be using this knowledge as we are using Docker in this course, and the Software Development Capstone project. I will most likely use this knowledge in my career, as so many companies are using docker today.