*** Welcome to piglix ***

Docker (software)

Docker
Docker (container engine) logo.svg
Original author(s) Solomon Hykes
Developer(s) Docker, Inc.
Initial release 13 March 2013; 3 years ago (2013-03-13)
Stable release
1.13.0 / 18 January 2017; 11 days ago (2017-01-18)
Repository github.com/docker/docker
Written in Go
Operating system Linux
Platform x86-64, ARM (experimental) with modern Linux kernel
Type Operating-system-level virtualization
License Apache License 2.0
Website www.docker.com

Docker is an open-source project that automates the deployment of applications inside software containers. Quote of features from Docker web pages:

Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.

Docker provides an additional layer of abstraction and automation of operating-system-level virtualization on Linux. Docker uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines.

The Linux kernel's support for namespaces mostly isolates an application's view of the operating environment, including process trees, network, user IDs and mounted file systems, while the kernel's cgroups provide resource limiting, including the CPU, memory, block I/O and network. Since version 0.9, Docker includes the libcontainer library as its own way to directly use virtualization facilities provided by the Linux kernel, in addition to using abstracted virtualization interfaces via libvirt, LXC (Linux Containers) and systemd-nspawn.

As actions are done to a Docker base image, union file system layers are created and documented, such that each layer fully describes how to recreate an action. This strategy enables Docker's lightweight images, as only layer updates need to be propagated (compared to full VMs, for example).


...
Wikipedia

...