What is Docker?
Docker is a container run time engine. Docker provides the power of operating system using minimal resources. Docker support application development in monolithic situations. In other words, developers can develop the applications, ship the container and deploy it anywhere. The destination could be a virtual machine, physical server or cloud instances (AWS, Azure, Google Cloud).
Benefits over VM:
What is the benefit of using docker over virtual machine? How it’s different from virtual Machine? Docker behaves like a virtual machine. It gets the power of virtual machines in lightweight and lean manner. It’s high-level API which provides a lightweight virtualization solution to run processes in isolation and in a secure way. Docker utilizes LXC, cgroups, and the Linux kernel to create a virtual environment. Docker doesn’t include an operating system, So it relies on the operating system to provide the underlying infrastructure. Docker is a portable container engine which can be used to create multiple virtual environments and each virtual environment will be attached to one process. Unlike VM, Dockers shares the binaries and libraries from base OS.
Advantages of Containers:
- VM’s required high overhead, Resource intensive than containers. Containers are lighter.
- Docker container takes few MB’s whereas virtual machines consume disk space in GB’s.
- Deploying VM for each application would be more expensive.
- Containers are a very cost-effective solution compare to VM since developers can deploy themselves.
- A container-based virtualization is a great option for microservices, DevOps, and continuous deployment.
- Containers can be deployed faster than VM. Because, it’s just like start another process on the system
- Containers can be scaled rapidly. Just matter of replicating the docker image to another node.
Disadvantages of Containers:
- Virtual Machines are highly secure since it runs on own kernel unlike containers shares the kernel.
- The hypervisor is matured Technology compare to containers.
- Containers introduce additional layers/ adds complexity.
Will Docker end virtual Machine journey?
No. The trend is moving like the win-win situation for container and virtual machines. Companies are benefiting by running containers on a virtual machine. This eliminates the limitation of containers and take the power of virtual machines.
Is docker Best Container runtime Solution?
Here is the list of popular container technologies:
- Oracle Solaris Zones: One of the most popular containers is Solaris zones. If you have worked on Solaris operating system, you might have experienced the flexibility of zones and easy management.
- Cores OS : rkt is another container runtime offered by core OS.
- LXC/LXD: This is Linux container manager. Docker uses LXC’s capabilities.
Docker is platform agnostic and it can runs on both windows and Linux OS. Docker store is the place where anyone can go and get the required container images. Some of the images have an entire stack. For an example, if you want to host a web service, you can pull the web server image which is pre-built with the web server, Operating system, and database.
Is Docker supported on Cloud?
Yes. All the cloud platform providers have container services offering in various forms. Docker was the default runtime engine in kubernetes deployment space. From Kubernetes 1.22 version, default container runtime changed to containerd
Leave a Reply