Load and Unload Virtual Cargo!

What is Docker?

The term, "Docker" has emerged a very common but revolutionary technology which transforms the traditional way of building and running software applications across various environments. It accelerates software delivery streamlining workflows as a powerful tool for developers.

It is an open-source platform which takes care of the deployment of light weight portable containers which encapsulate all the necessary things needed to run a software application. (including code, runtime, system tools, libraries, settings etc.). It replaces the traditional virtual machine concept operating as isolated environments utilizing the host OS kernal that minimizes overhead and maximizes efficiency.

The code of your application could easily be packaged and deployed in somewhere else with docker. You may share our code with others easily without worrying about dependencies. 

Key areas

Images

They are like building blocks for containers. An image is a lightweight standalone executable package which includes code of the software application and its dependencies.

Docker containers

They are the instances of images which run applications in siolated environments. They are capable of providing consistency across various environments making sure that a particular application can behave consistently regardless of where it is deployed.

Docker engine

It is like the core. It creates, manages docker containers. It includes a server and a lightweight runtime that manages and coordinates containers, networking & storage.

Advantages

  • Portability is encouraged. Docker ensures that applications run consistently and smoothly in various environments without having compatibility issues. They streamlines the process of deployment.
  • Docker containers share the host OS kernal becoming more lightweight and efficient when compared to traditional VMs. 
  • Docker offers rapid automated deployment of applications. Software could be developed, tested and deployed fast fostering continuous integration (CI) & continuous deployment (CD) pipeline.
  • It allows to scale applications easily through spinning up multiple docker containers. And they optimize utilization of resources facilitating efficient and effective use of hardware. 

Docker use cases

  • Microservices Architecture
  • DevOps practices
  • Cloud-native applications

Docker vs Virtual Machines

Virtual Machines are like entire computers within one computer while Docker containers are like individual applications that share resources with that computer.

  • Virtual Machines emulate complete computers with their won OS installed on top of a hypervisor. Docker containers share the host OS kernel and package only the software application & its dependencies.
  • Virtual machines require a hypervisor and an OS for each instance. So it consumes more resources of the system. Docker containers share host OS resources. So it's more light weight and efficient.
  • Virtual machine images are larger since they include an entire OS that takes up a lot of storage. Docker container images are way smaller as they only include necessary items for the application.
  • Since they have to boot up a complete OS virtual machines take a lot of time to start. Docker containers start very quickly since they have not to boot up a complete OS. They just leverage the host OS kernal.




Comments

Popular Posts