Virtualization has revolutionized computing. The distribution of the resources of a physical machine into multiple virtual machines (VM or virtual machine) has entered the landscape of information technology in the form of hardware virtualization. This approach is based on the emulation of hardware components to use multiple virtual servers with its own operating system in a common housing system.
This is what often happens in the field of software development, having to implement different test environments on a single computer. Virtualization is also found in the product base web hosting and cloud servers.
An alternative to the hardware virtualization is the virtualization of the operating system, whereby various server applications are deployed in isolated virtual environments, called containers, which work in the same operating system (based on virtualization containers). As like virtual machines, each with its own operating system, the containers also provide the ability to use multiple applications in parallel, each with its own requirements, in the same physical system. As the containers do not have any own operating system, virtualization technique is distinguished by a much simpler installation and lower consumption (overhead).
Containers for the server are not a recent invention, but because of open source project like Docker, container technology is now on everyone’s lips.
What are the containers?
While conventional virtualization relies on the so-called hypervisor, also called virtual machine monitor, which distributes the system hardware accommodation between guest operating systems, virtualization in containers proportionally, on the other hand, do not start additional operating system. Instead, the operating system common form isolated examples of self, i.e., virtual containers that create a full-time environment for applications.
A software container, in its most basic concept, can be considered for the server application. To install an application, the container is loaded on the computer in a portable format or image which includes all the necessary data for its operation and, on the computer, it begins in a virtual environment. Virtually all operating systems support the implementation of application containers: in Windows, the software created by Parallels Virtuozzo is used, FreeBSD has the virtualization environment that supports Linux Jails and containers in the form of OpenVZ, and LXC (Linux Containers). For most users, however, it is done through a platform such as Docker as virtualization or operating system begins to be feasible since this technology adds some functions that facilitate the use of containers.
Docker container technology in hand
It is inevitable once with Docker have found when working in the field of virtualization of operating systems. This open source project has become popular in a few years, thanks to an extraordinary marketing operation, synonymous with container technology. Briefly stated, Docker is a tool to start, stop and manage containers by commands and is based on Linux own techniques to separate the resources of each container. If the LXC Linux kernel interface was used at the beginning, now it runs with Libcontanier, a programming interface developed by Docker.
A remarkable feature of this container is the Docker Hub, a repository where users can share their created images (containers) with other users. For users of Linux, to install one of these containers is as easy as downloading an application from the App Store. Docker download from the Hub is done by commands and runs on the system itself.
Advantages of Container Technology
Containers Applications “packages” the resources necessary for the operation of an application for ease of use for administrators and developers, simplifying the installation and commissioning of complex programs. However, the biggest advantages of such containers lie mainly in the management and automation of container-based software.
Easier Installation: Software containers start from images or representations of a portable container, including a program and all required components (such as libraries, support or configuration files). Thus the differences between operating systems are compensated. Installation is reduced to the introduction of a command line.
Independent Platform: Images can be transported easily from one system to another and are characterized by considerable independence of the platform. All that is required to start a container from an image is an operating system that supports containers.
Virtualization Minimal Losses: With Linux and Docker container, container installation requires about 100 MB bandwidth and a few minutes, although this is not just what system administrators oppose. While hardware virtualization brings a loss of performance for the hypervisor and other operating systems, containers, to dispense with all this, reduce this loss to a minimum. Furthermore, if the boot (booting) of a virtual machine can take several minutes, applications are available immediately.
Isolated Applications: Each program operates independently in other containers so that applications with conflicting requirements can operate in parallel on the same system.
Administration and Automation Unit: Because in a platform like Docker, all containers are managed with the same tools, you can automate all applications centrally. Therefore, these solutions are indicated primarily for server architectures in which components are distributed across multiple servers so that it is loaded with weights of different instances. In these areas of application, Docker container has tools with which you can configure automation. This allows, for example, launch new instances automatically at specific times of overload. Google offers Docker’s image for orchestration of large clusters of containers.
Are the Containers Secure?
Stopping using separate operating systems implies an improvement in the performance of virtualization with a container, but it also means having a lower level of security. If in the case of conventional hardware virtualization, operating system vulnerabilities usually affect a single virtual machine, virtualization operating system has an effect on all containers. Thus, the containers are not as tight as virtual machines operating system itself. And although in the first case hypervisor attack can cause serious damage, being less complex, far-reaching they fail as in the case of a Linux kernel. Consequently, even if the containers are an alternative for virtualizing hardware, it cannot be completely replaced.