As per docker website, Docker is “an open source project to pack, ship and run any application as a lightweight container.” Here container refers consistent and standard packing of applications. The idea of providing as a container is to enable it to run on any infrastructure.
The technologies used in Docker are as below
- LXC: LinuX Containers (LXC) is the core component of Docker. LXC is used to create application level virtualization. You must be aware about full machine virtualization. There are many virtualization software’s such as VMware, VirtualBox, Xen, KVM etc are present in the market which create full machine virtualization. Full machine virtualization provides better isolation on the cost of increased overhead, as each virtual machine has its own full kernel and operating system instance. LXC does not create Virtual Machines but create containers. Containers do not hold full kernel image and OS instance but it shares host kernel and OS instance. A container provides less isolation than a virtual machine.
- Copy-on-write FileSystem (AUFS): Docker uses a copy-on-write filesystem to instantiate a container quickly. This filesystem is copy-on-write, so in case of no change in file/folder a pointer pointing to file/folder is sufficient, copying of file/folder not require.
- DSL: Docker uses a plain text configuration language, known as Domain Specific Language (DSL) to control configuration of an application container.