Virtual machines vs Dockers
Virtual Machines
- It’s another way of approach to creating an isolated and simulated environment.
- It’s a process, that will create the virtual version of a software, operating system, server, or storage over the primary host.
- The process of creating virtual machines is called virtualization.
- A component that abstracts the hardware from the host server, such as CPU, storage, and networks, is called a Hypervisor. It manages the isolation function of the different VMs.?
- Each VM has its infrastructure, such as virtual hardware, bins, and libraries.?
- Guest OS manages the virtual hardware and resources given by the hypervisor.
Advantages of VM
- Strong isolation between VMs.
- Disaster recovery, Hypervisor encapsulates the entire server environment, by using a VM image, we can backup and restore the environment.
Virtual machines have a few downsides too,
- Performance degradation, because all are running in the same physical server.
- It consumes more resources because each VM contains its own guest OS, and it holds a lot of memory.
?
What's called Docker?
- Docker is an open platform for running, developing, and Shipping applications.?
- It helps you separate your application from the infrastructure so that you can move and deploy it anywhere.?
- The developer can reproduce the consistent environment across different systems. So it has fixed environmental-related issues like system compatibility and versions related issues.
领英推è
What's called Container?
- Containers are lightweight, standalone, loosely isolated environments, and executable software packages that can run the whole applications including the code base, tools, and libraries.?
- It includes everything to run an application independently from the host, not depending on what is installed.
- Containers are sharable, we can share them with the developers, But make sure everyone gets the same container.
- ?Docker is much more lightweight than VMs, it runs on top of the Host and resources. It doesn’t need any virtual OS and resources.
- Instead of a hypervisor layer in VMs, here is Docker Daemon. It’s the communication layer between the host OS and containers.
Advantages of Docker:
- Consistent over environments.
- Faster startup time
- Version control and rollbacks
- Docker images are immutable and version-controlled, so version control and callbacks are much easier than VM.
Disadvantages of Docker
- Complex to Manging more number of containers.
- Need separate tools to monitor the containers.
- It’s challenging to debug the Applications running in the dockers
- It's not suitable for stateful applications. Because it requires more complex configurations data reliability and consistency.
Thanks for your time...!
VMware Certified Instructor & Microsoft Certified Trainer| 6x VCP (DCV,AM,NV,CMA,DTM,TKO) | VMware | Microsoft (Azure, Devops, AKS) | Spring Certified | Nutanix Certified | K8s | Docker | Microservices | Devops | Istio
9 个月Very good content