====== LXC - LXC vs Docker ====== LXC allows the creation and running of multiple isolated Linux virtual environments on a single control host. * It allows you to not only isolate applications, but even the entire OS. * As there is no preloaded emulation manager software, it runs with no added overhead; i.e. faster and with less RAM. * There is no hardware emulation, which means that aside from a small memory software penalty, LXC will boast bare metal performance characteristics because it only packages the needed applications. A Docker container does not include a separate operating system; instead it relies on the operating system’s own functionality as provided by the underlying infrastructure. * Docker packages the application and all its dependencies in a virtual container that can run on any Linux server. * Packages the entire OS and machine setup, including hard drive, virtual processors and network interfaces. * CON: The resulting bloated mass usually takes a long time to boot and consumes a lot of CPU and RAM. * PRO: It can be transferred and quickly installed onto another host. ---- ^ ^LXC^Docker^ ^Architecture|Supports a fully-virtualized Linux OS including boot-up procedures.|Single image running as an application.| ^Purposes|Run multiple applications in a single Linux VM.|Run a single application within a single container.| ^Requirements|Requires a fully-functional Linux OS.|Running isolated containers simultaneously.| ^Advantages|A lightweight alternative to virtual machines.|Rapid and easy deployment.| |:::|More flexible.|Application-centric, portable deployment across machines.| |:::|Data can be saved in a container.|Component re-use.| |:::| |Versioning: Docker includes git-like capabilities for tracking successive versions of a container, inspecting the diff between versions, committing new versions, rolling back etc.| |:::| |Component reuse: Docker allows building or stacking of already created packages. This allows re-use of a 'template' image, for creating other containers.| |:::| |Shared libraries: There is already a public registry (http://index.docker.io/ ) where there are many thousands of containers that can be used; which have been created by other people. **WARNING**: These are not all secure; with many trojans!|