[Docker technology entry and combat] virtualization and Docker

This article excerpts from "Docker technology entry and actual combat" , Hua Zhang authorized DockerOne release this book sample, prohibit any form of reprint this article.

Virtualization technology is a common concept, in different areas have different understanding. In the computing area, generally refers to the calculation of virtualization (Computing Virtualization), or usually said that the server virtualization. Wikipedia is defined as follows:

In computer technology, virtualization (Virtualization) is a resource management technology, the computer is a variety of physical resources, such as servers, networks, memory and storage, to be abstract, converted after the show, breaking the physical structure can not Cutting obstacles, so that users can use the original configuration better way to apply these resources.

It can be seen that the core of virtualization is to abstract resources, the goal is often in the same host to run multiple systems or applications, thereby improving the utilization of system resources, while bringing lower costs, easy management and fault tolerance disaster recovery and other benefits The

Virtualization can be divided into hardware-based virtualization and software-based virtualization. Among them, the real sense of hardware-based virtualization technology is rare, a small number of network cards such as a single multi-IO virtualization (Single Root I / O Virtualization and Sharing Specification, SR-IOV) and other technologies, but also beyond the book The scope of discussion.

Software-based virtualization is based on the level of the object, and can be divided into application virtualization and platform virtualization (usually said that virtual machine technology belongs to this category). Among them, the former generally refers to some of the simulation equipment or wine such software. The latter can be broken down into the following sub-categories:

  • Fully virtualized. The virtual machine simulates the complete execution of the underlying hardware environment and privileged instructions, and the guest operating system does not need to be modified. Such as VMware Workstation, VirtualBox, QEMU, and so on.
  • Hardware-assisted virtualization. Utilize hardware (mainly CPU) support support (currently available on the x86 architecture hardware-assisted virtualization technologies including Intel-VT and AMD-V) to handle the sense of the function to achieve full virtualization, the customer operating system without modification, Such as VMware Workstation, Xen, KVM.
  • Partial virtualization. Only part of the hardware resources for virtualization, the customer operating system needs to be modified. Some of the earlier versions of virtualization technology now support only partial virtualization.
  • Paravirtualization. Part of the hardware interface in the form of software provided to the client operating system, the customer operating system needs to be modified, such as the early Xen.
  • Operating system-level virtualization. The kernel isolates different processes by creating multiple virtual operating system instances (kernels and libraries). Container related technology that is in this category.

It can be seen that Docker and other container technologies are part of the operating system virtualization.

Docker virtualization has many advantages, which with the operating system virtualization itself is inseparable from the characteristics. Figure 1-1 below compares the differences between Docker and common virtual machine approaches.

The traditional way is to achieve virtualization at the hardware level, the need for additional virtual machine management applications and virtual machine operating system layer.

The Docker container is virtualized at the operating system level and is more lightweight than the native host operating system.

    Heads up! This alert needs your attention, but it's not super important.