An Introduction to Docker

Vibhor Bhatia
Analytics Vidhya
Published in
2 min readAug 4, 2020

--

Docker, a containerization platform developed to simplify and standardize deployment in various environments, was largely instrumental in spurring the adoption of this style of service design and management. A large amount of software has been created to build on this ecosystem of distributed container management.

Docker provides the platform to manage the ecosystem of containers. Docker makes container creation and management simple and integrates with many open source projects.

The above images show how containers isolate the different applications and use operating system resources which are defined by docker. Containers can be built by layering with multiple containers sharing underlying layers that decrease resource usage.

Containers look similar to Virtual Machine but it is quite different from VM as there is no concern about what operating system being used. When it comes to start-up, Virtual Machine takes a lot of time to boot up because the guest operating system needs to start from scratch, which will then load all the binaries and libraries. This is time-consuming and will prove very costly at times when a quick startup of applications is needed. In the case of Docker Container, since the container runs on your host OS, we can save precious boot-up time. This is a clear advantage over Virtual Machine.

Containers are efficient because they share the same operating systems. Some organizations, however, like VMs instead of containers for the very reason that they can have many operating systems. Other complaints about Docker include:

  1. Builds and deployments are slow and unpredictable
  2. Some Docker supporters advocate the putting of data into containers, a practice that would make it difficult to back up or clone the data
  3. It has a touchy and unpredictable command-line interface
  4. The security is weaker than VMs

Docker allows all the dependencies packed inside the application, which provides a seamless transition with development to deployment. The initial effort with the Docker setup will compensate for its effort very quickly, and it will allow us to gradually improve as the project matures.

Since you have read until here,I hope this was helpful to you.For any queries, you can reach me on LinkedIn

Additional Resources

Here are some useful resources mentioned throughout the article, might be helpful to check them out.

  1. https://docs.docker.com/get-started/overview
  2. https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/containers-vs-vm
  3. https://www.digitalocean.com/community/tutorials/the-docker-ecosystem-an-introduction-to-common-components
  4. https://www.docker.com/resources/what-container

--

--

Vibhor Bhatia
Analytics Vidhya

FULL STACK ENGINEER | SPORTS ENTHUSIAST | BLOGGER