Virtualization serves as a catalyst for enhancing various aspects of the IT landscape:
It is possible to rent only part of the machine resources.
Virtual infrastructure can be completely different from physical infrastructure.
Application dependency management
The same or almost the same application runs in different conditions.
Ensuring portability increases the cost of product development and maintenance.
Customers demand portability.
It allows you to easily:
is the layer separating the guest operating system and physical hardware.
+----------------+
| HOST HW and OS |
+----------------+
^
|
+----------------+
| Virtualization |
+----------------+
^
|
+------------------+
| GUEST OS and APP |
+------------------+
Creates a separate "world" for the application:
Hardware Virtualization: Runs on a virtual processor, allowing the execution of programs for any architecture and OS, albeit slower.
Paravirtualization: Runs on a physical processor with faster performance but limited to programs for the same architecture, requiring BIOS support.
Virtualization at the Operating System Level: Runs in a dedicated space, utilizing host OS services, limiting compatibility to the same operating system.
The virtualization layer is part of the Host OS, e.g. VM Ware ESX, Xen, Qemu / KVM, ProxMox
+----------+
| HW HOST |--------+
+----------+ |
^ |
| |
+------------+ +---------+
| Hypervisor | | Host OS |
+------------+ +---------+
^
|
+------------------+
| GUEST OS and APP |
+------------------+
Monitor is one of the Host OS applications, e.g. Virtual Box
+------------+ +----------+
| HOST OS |-| Guest HW |
+------------+ +----------+
^
|
+------------+
| VM Monitor |
+------------+
^
|
+------------------+
| GUEST OS and APP |
+------------------+
A layer of the host operating system that creates a "cage" in which one or more processes run.
+------------+ +----------+
| HOST OS |-| Guest HW |
+------------+ +----------+
^
|
+-------------------+
| Container Manager |
+-------------------+
^
|
+-----+
| APP |
+-----+
Docker is a set of platform as a service (PaaS) products
that use OS-level virtualization to deliver software in packages called containers.
Each component can run on a different machine. Components communicate with each other using an application protocol.
+------------+
| registries | Docker Hub
+------------+
|| (image)
+----------+
| daemon | Host machine
+----------+
|| (protocol)
+------------+
| cli client | Host or manager machine
+------------+
The 'docker' command in the command line.
Primarily running on Linux OS or Docker Machine, the daemon is responsible for executing containers based on instructions.
Comparing virtualization and containerization, virtualization has certain disadvantages:
on your PC