Docker is an open source project utilized for app deployment using software containers. This approach means running applications into a complete environment (files, code libraries, tools, and so on). Docker, similar to virtualization but a completely different approach allows an application to be packaged into an image that can be run everywhere. In case of virtualization we use all resources os, services ecc .. docker changed the idea how to deploy application.
Containerization versus virtualization
Without Docker, isolation and the most popular solutions are VirtualBox, VMware, and parallels. A virtual machine emulates a computer architecture and provides the functionality of a physical computer. We can achieve complete isolation of applications if each of them is delivered and run as a separate virtual machine image.
The following diagram presents the concept of virtualization:
Every image is separate and with all dependencies and a guest operating system. Images are run by the Hypervisor, which emulates the physical computer architecture. This method of deployment is widely supported by many tools (such as Vagrant) and dedicated to development and testing environments. Virtualization, however, has three significant drawbacks:
- Low performance: The virtual machine is exactly hot works your PC
- High resource consumption: Emulation requires a lot of resources, services on background
- Large image size: Each application is delivered with a full operating system and big IMGs
If you want learn more follow this fantastic book, really complete with info and real tools used in fortune 500 company.
- Previous Post