High Level Linux Container APIs
DotCloud has developed and made publicly available the Docker system - high-level interfaces for accessing Linux containers (LXC). This is an ideal tool for working with containers on any x64 server, for deploying large-scale web installations, database clusters, private PaaS, etc.
LXC is an operating system-level virtualization system for running multiple isolated Linux instances on a single computer. LXC does not use virtual machines, but creates a virtual environment with its own process space and network stack. All LXC instances use the same OS kernel instance.
Key Docker Features
- File System Isolation: Each process container runs on a completely separate root file system.
- Resource Isolation: System resources like CPU and memory can be allocated differently for each process container using cgroups
- Network isolation: each process container operates in its own namespace, with a virtual interface and its own IP address
- Copy on write: root file systems are created by copy on write, which allows you to deploy containers extremely quickly, without using extra memory and disk space
- Logging: standard threads (stdout / stderr / stdin) of each process container are registered and saved for later analysis
- Change management: changes made to the file system of one container can be applied to a new image and reused for other containers. No longer need templates and manual configuration.
- Interactive console: Docker can connect pseudo-tty and standard data entry for any container
Docker is built on the AUFS file system , which has a copy-on-write function, and the Go programming language .
Instructions for installing Docker under Ubuntu
Instructions for installing Docker for Windows (you need Virtualbox, Vagrant and Git, Ubuntu is installed on the virtual machine)
Code on Github
Documentation