Cloud Native 10 min read

A Comprehensive Overview of Docker and the Container Technology Ecosystem

This article provides a broad, non‑technical overview of Docker’s evolution, the diverse container technologies that preceded it, key Docker concepts and components, the Moby project, and the rise of orchestration tools, illustrating how containers have become mainstream from 2013 to 2017.

Python Programming Learning Circle
Python Programming Learning Circle
Python Programming Learning Circle
A Comprehensive Overview of Docker and the Container Technology Ecosystem

A Bloom of Container Technologies

Although Docker popularized containers, the technology predates it by decades, with many earlier implementations such as Chroot Jail, FreeBSD Jails, Linux VServer, Solaris Containers, OpenVZ, Process Containers, LXC, Warden, LMCTFY, Docker, and RKT, each offering OS‑level isolation.

Chroot Jail, introduced in 1979, isolates a process's filesystem. FreeBSD Jail provides OS‑level virtualization and was a pioneer. Linux VServer and Solaris Containers are OS‑level virtualizations for Linux and Solaris respectively. OpenVZ creates multiple secure Linux VPS instances. Process Containers, developed by Google engineers, are commonly known as cgroups. LXC (Linux Containers) allows multiple independent systems on a single Linux kernel. Warden originally used LXC and was later replaced by CloudFoundry. LMCTFY (Let Me Contain That For You) is Google’s open‑source container stack, now likely superseded by libcontainer. Docker packages applications and dependencies into portable containers. RKT (Rocket) focuses on security and open standards.

Docker, launched in 2013, quickly became the most recognized container platform, evolving into a suite of components illustrated in the accompanying diagram.

Important Docker‑Related Concepts

Docker initially used LXC as its execution environment, but from version 0.9 onward it switched to libcontainer.

Libcontainer abstracts Linux kernel features such as cgroups, namespaces, netlink, and netfilter for Docker, as shown in the diagram.

In 2015 Docker released runC, a lightweight, cross‑platform container runtime that enables standard containers to run without the Docker engine.

The Open Containers Initiative (OCI), founded in 2015 by Docker, CoreOS, and other industry leaders, maintains specifications for container runtimes and images, promoting interoperability.

In 2016 Docker split out containerd, donating it to the community; containerd now handles container lifecycle management outside the Docker engine.

After the split, Docker’s architecture consists of the containerd runtime, Docker Swarm for orchestration, and both community and enterprise editions, as depicted in the diagram.

Docker’s container execution model involves five steps: (1) Docker engine creates an image, (2) passes the image to containerd, (3) containerd invokes containerd‑shim, (4) containerd‑shim uses runC to run the container, and (5) containerd‑shim allows the runtime to exit after container launch, enabling engine upgrades without interrupting running containers.

2017 – Containers Go Mainstream

In 2017 containers became mainstream, prompting Docker to support multiple platforms (Mac, Windows, AWS, GCP) and to launch the Moby Project, an open‑source initiative that provides modular “Lego‑like” components for building custom container systems.

Moby Project

The Moby Project offers dozens of reusable components, including:

Containerd – a core container runtime for Linux and Windows.

LinuxKit – a tool for building secure, minimal, cross‑platform Linux systems for containers.

Infrakit – a toolkit for declarative, immutable, self‑healing infrastructure, useful for Swarm, Kubernetes, and cloud auto‑scaling.

Libnetwork – a Go‑implemented container networking project that defines a Container Network Model (CNM) and provides a consistent API.

Docker Swarm – a native orchestration tool integrated into the Docker engine since 1.12.

Docker & Kubernetes integration – after Swarm’s competition with Kubernetes, Docker added first‑class support for deploying Docker Compose applications as native Kubernetes pods and services.

These components are illustrated in several diagrams showing the evolution from a monolithic Docker engine to a modular ecosystem.

The article concludes with a graph of Docker Hub image pull trends from 2013 to 2017, demonstrating the rapid adoption of container technology.

Disclaimer: This article is compiled from online sources; copyright belongs to the original authors. Please contact us for removal or licensing requests.

cloud nativeDockerContainercontainerdOrchestrationMoby
Python Programming Learning Circle
Written by

Python Programming Learning Circle

A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.