What's a Container?
In a veritably approximate way, we can define traditional virtualization as the possibility of an operating system equipped with Hypervisor to emulate the underpinning tackle of the machine on which it's installed in order to make available to one or further machines. Which we call virtual, a complete set of operations, libraries as well as an operating system. Each virtual machine created is fully unlinked and only shares the virtual tackle made available by thehypervisor.
But why virtualize an entire operating system when you can limit yourself to a single element, operation or service?
Well, this is the question that for several times several companies( similar as Google in the first place) have asked themselves.
The revolutionary answer was rather of using a virtualized tackle subcaste you start from the kernel( Linux) of the starting machine and only attach what you need to produce specific isolated operation terrain, thus called vessel.
Docker, in turn, took this idea and made it into an effective system for distributing operations through a universal containerization format called DockerFile.
What's a Container Docker and the differences with a Virtual Machine
A Container is defined as a software package that formerly has everything it needs to run singly in an effective and minimum way. In practice, a vessel must run the same way in a Windows or Linux machine because it formerly has all the law, libraries, system and runtime tools itneeds.Another crucial point of a Container Docker is its insulation that ensures that the law doesn't have reliance and terrain conflicts with other Containers hosted on the same machine.
Let’s see some of the advantages of using Docker for Development :
For inventors and closest longshoreman system contrivers, it’s a god gift we can literally package an operation. We take our operation, we assign only the coffers demanded for prosecution and package it by happily planting on any machine anyhow of the operating system used.
1. Provisioning
As we've formerly seen, we're barring the heaviness of an emulated tackle substrate that can decelerate down the allocation of coffers and the prosecution of our services. For this reason, unlike virtual machines, we can have numerous holders indeed locally without too important impact on performance.
2. Testing
As a direct consequence of the first entry if we use this tool for testing purposes we divide the computational costs that would else be commensurable to the number of tests performed if we were using a pall garçon, forexample.The vessel always uses the same assigned computation coffers, so we can do all the tests we want to keep the cost constant.
3. Administration
Suppose the development cycle of your operation, a system like Docker allows you to have a quick release of new releases with a many simple commands.
4. Distribution
Rather of distributing the single operation you can also decide to distribute the vessel that formerly contains the applicable development terrain, the DBMS and voluntary libraries that are used simply for yourapplication.This allows us to avoid updates that can undermine the use of other operations, malfunctions for different libraries, a concurrence of different performances of languages, ease of installation of the product to our end client.
5. Modularity and Reusability
Rather ofre-installing on each vessel the services that are common to multiple operation cases can be simply contained in a vessel with the same services and connect them to each case.