Docker: a dark horse in the field of server virtualization
Speaking of the question of server virtualization (of course, this is the core of this Article), we will inevitably focus on the core of VMware and Hyper-V, the relatively weak Xen and KVM are also often mentioned. However, today, a dark horse has entered this field with the power of thunder and lightning, and it cannot be used together with many traditional giants-this is Docker.
Now that we have talked about Docker, we naturally need to begin with the question of container technology-this mechanism is slightly different from the original server virtualization solution based on the virtual machine management program. However, encapsulating applications in a single container in the operating environment can indeed bring many advantages equivalent to loading and running applications using the Virtual Machine System: both of them can be smoothly carried by any suitable physical device, and their operation does not require any dependence or other restrictions.
Of course, the key difference between Docker and VMware solutions is that Docker is a Linux-based and LXC-based system-the so-called LXC is a set of user space interfaces, specifically for the features contained in the Linux kernel.
LXC aims to create an environment that is as consistent as possible with the standard Linux installation version, but does not need to use an independent kernel system. As stated on linuxcontainers.org, "LXC is generally considered an intermediate point between enhanced chroot and high-maturity virtual machine systems ."
Since Docker is built on LXC, it is only applicable to Linux environments (such as RHEL 7 and Ubuntu 14.04 Server versions) and can only run Linux applications. In view of this, you can give up the idea of running Windows applications or other operating system applications that can run smoothly on common Virtual Machine management programs.
Another key difference between the two is that, compared with the virtualization solution that used to act as an independent system in the past, the Docker container actually chooses the processing method shared by the Linux kernel-the kernel is derived from a single operating system running on the host device. Specifically, multiple containers running on the same host device share the same Linux kernel. The shared part of the operating system is read-only, but different containers have their own writable part.
Measure the test taker's knowledge about the advantages of the container mechanism.
What are the advantages of the new container mechanism compared with the mature server virtualization technology that has been developed for a long time? In the face of other conditions, how should we choose between them?
One of the core advantages of container mechanism is that users can run more container systems on a host device, and the number of specific systems is higher than that of virtual machines. It is hard to understand the principle. Because each virtual machine is an independent system, you need to allocate proprietary resources for its operating system and virtualization hardware, as well as other special functions. If the size of each virtual machine system is 10 Gb, then the total size of the ten virtual machine systems is 10x10 = 100 Gb-the sum of resources is purely a cumulative relationship.
However, if we run ten or even hundreds of 10 Gb containers together, we would be far from using the total resources of GB. The reason is simple. All containers share the same part of resources, which completely avoids the serious waste caused by repeated resource allocation.
In fact, all containers share only one operating system (more strictly speaking, it should be a system kernel ). There is no virtual hardware in the entire container system-just a little application plus its operating environment. This means that even on the same host, the number of containers that everyone can run far exceeds the total number of virtual machine systems.
Using this kernel and other resource sharing processing method can also bring other additional effects. Specifically, this allows containers to be started in less than one second. In contrast, virtual machine systems do not have such advantages, because it starts the entire virtual system from enabling to running properly, and the specific duration is usually several minutes or more.
Mark Shuttleworth, CEO of Canonical (Ubuntu system sponsor), reiterated the practical benefits of this speed advantage. "The Canonical company provides users with a commitment to kernel and user space efficiency, ensuring that they can support everyone to create a container system with the same actual effect as the virtual machine, in addition, even common non-root users can enjoy the same experience as the root user of the virtual machine in the system. It is faster and smaller than KVM, "he explained.
In addition, there are many other advantages. For example, you can run Docker containers in AWS and Azure public cloud environments. In addition, containers are easier to share. These features are especially important for testing and development teams-and are also one of the most common and respected potential advantages of Docker.
Currently, the container mechanism is insufficient to become a substitute for the complete server virtualization solution.
However, VMware and other virtual machine solution providers do not have to worry too much, because the current container mechanism is not enough to become a substitute for the complete server virtualization solution-at least for the moment.
This is because the virtualization field is filled with a large number of extremely complex management infrastructure, designed to help users save, log on and run virtual machine systems, in addition, migration between different hosts, creation of high-availability clusters, and other similar tasks. Solutions represented by VMware vCenter, Microsoft's System Center Virtual Machine manager, and other third-party management products have been immersed in this path for many years and accumulated rich and reliable practical experience.
Although Google, RedHat, CoreOS, IBM, and Microsoft have begun to promote the development and improvement of the open-source Kubernetes Docker management system, however, for the moment, Docker is not enough to provide the actual effect that can compete with server virtualization. Moreover, we cannot determine whether container technology can develop rapidly in a short period of time to meet the advanced requirements of enterprise users for specific business implementation solutions.
To sum up, we can see that Docker virtualization technology is definitely worth your attention in the future development path. IT168 will also pay close attention to its latest trends in future reports and bring the latest news to you immediately.
Install Docker in CentOS 6/7 Series
Detailed explanation of the entire process of building Gitlab CI for Docker
Docker installation application (CentOS 6.5_x64)
What is the difference between Docker and a normal Virtual Machine?
Use MySQL in Docker
Docker will change everything
Docker installation application (CentOS 6.5_x64)
Docker details: click here
Docker: click here
This article permanently updates the link address: