Users dealing with container-based virtualization will invariably encounter Docker at some point. Thanks to its outstanding marketing, the open source project has quickly become synonymous with container technology. The command line tool, Docker, is used for starting, stopping and managing containers. It’s based on Linux techniques, like Cgroups and Namespaces to separate the resources of individual containers. Initially, the LXC interface of the Linux kernel was used; these days, however, Docker containers use a self-developed programming interface called Libcontainer.
One central feature of the Docker platform is the Docker Hub, an online service that contains a repository for Docker images so that self-created images can be shared easily with other users. For Linux users, installing a pre-built server container is as simple as going to the app store. Applications can be downloaded via simple command line instructions from the central Docker Hub and run on your own system.
Docker’s biggest competitor on the container solution market is rkt, which supports Docker images as well as its own format, app container images (ACI).