LXC vs Docker: Why Docker is Better | UpGuard - 0 views
-
LXC (LinuX Containers) is a OS-level virtualization technology that allows creation and running of multiple isolated Linux virtual environments (VE) on a single control host.
-
Docker, previously called dotCloud, was started as a side project and only open-sourced in 2013. It is really an extension of LXC’s capabilities.
- ...35 more annotations...
-
Docker is developed in the Go language and utilizes LXC, cgroups, and the Linux kernel itself. Since it’s based on LXC, 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 acts as a portable container engine, packaging the application and all its dependencies in a virtual container that can run on any Linux server.
-
In a VE, the application (or OS) is spawned in a container and runs with no added overhead, except for a usually minuscule VE initialization process.
-
LXC will boast bare metal performance characteristics because it only packages the needed applications.
-
a VM, which packages the entire OS and machine setup, including hard drive, virtual processors and network interfaces. The resulting bloated mass usually takes a long time to boot and consumes a lot of CPU and RAM.
-
LXC as supercharged chroot on Linux. It allows you to not only isolate applications, but even the entire OS.
-
Shared libraries: There is already a public registry (http://index.docker.io/ ) where thousands have already uploaded the useful containers they have created.
-
LXC having a focus on sys admins that’s similar to what solutions like the Solaris operating system, with its Solaris Zones, Linux OpenVZ, and FreeBSD, with its BSD Jails virtualization system
-
it started out being built on top of LXC, Docker later moved beyond LXC containers to its own execution environment called libcontainer.
-
Unlike LXC, which launches an operating system init for each container, Docker provides one OS environment, supplied by the Docker Engine
-
The LXC command line provides essential commands that cover routine management tasks, including the creation, launch, and deletion of LXC containers.
-
Docker containers aim to be even lighter weight in order to support the fast, highly scalable, deployment of applications with microservice architecture.
-
With backing from Canonical, LXC and LXD have an ecosystem tightly bound to the rest of the open source Linux community.
-
Kubernetes facilitates the deployment of containers in your data center by representing a cluster of servers as a single system.
-
Swarm is Docker’s clustering, scheduling and orchestration tool for managing a cluster of Docker hosts.
-
rkt is a security minded container engine that uses KVM for VM-based isolation and packs other enhanced security features.
-
Elastic Container Service is Amazon’s service for running and orchestrating containerized applications on AWS
-
LXC offers the advantages of a VE on Linux, mainly the ability to isolate your own private workloads from one another. It is a cheaper and faster solution to implement than a VM, but doing so requires a bit of extra learning and expertise.