What is "docker"
With the popularization of cloud computing there has been a considerable increase in the amount of virtual machines that administrators have to maintain. The creation and maintenance of a virtual machine (Virtual Box, Vmware, etc.) takes a lot of time and is sometimes complex. Due to this growth and great difficulty in the operation of this environment, the need to improve this model emerged. Solomon Hykes, founder of Docker and current CTO, realized that there was no need to recreate a full OS but to reuse the same OS rejections in an independent and isolated run-time space called Virtual Environment.
It is an open platform for developers and system administrators to build, deliver and run distributed applications. It consists of the Docker Engine, which is a lightweight execution and packaging tool, and the Docker Hub, a cloud service responsible for application sharing and workflow automation. It allows applications to be quickly assembled and eliminates friction and difference between development, testing and production environments.
This is how Docker was created, which is a virtualization environment, which uses the functionalities cgroups and namespacing of the Linux Kernel (and the Go language) to create and run isolated virtual Linux environments on a single host. This Virtual Environment - VE runs directly on the existing kernel (from the host) and only creates a container, where your applications will be run, where it is even possible to recreate another OS configuration, since this will be just another application running on the kernel.
Note that Docker shares the Linux kernel between environments and its containers will not have complete isolation as provided by Vms.
Similarly, Windows containers run on top of Windows images through Hyperv technology.
Docker uses Aufs as a file system, reusing OS and application images (layer-built) among several of its containers, saving valuable host computer resources.
Docker can be installed on Linux, Mac OS X and Windows on 64-bit platforms.