Containerisation is an operating-system-level virtualisation technique that packages an application together with its dependencies, libraries, and configuration into a single portable, isolated unit called a container. Containers share the host kernel yet maintain isolated user spaces, making them far lighter than full virtual machines while remaining reproducible across environments. The approach underpins cloud-native software delivery, providing consistent runtime behaviour from a developer’s laptop to production clusters.
Overview
- Containerisation solves the “works on my machine” problem by making the runtime environment part of the deliverable artefact.
- An image is an immutable, layered filesystem snapshot; a container is a running instance of that image.
- Kernel features such as namespaces and control groups provide process isolation and resource limits without a separate guest OS.
- The Open Container Initiative standardises image and runtime formats so artefacts are portable across vendors.
Key aspects
- Isolation: each container has its own view of processes, network, and filesystem while sharing the host kernel.
- Immutability: images are built once and run unchanged, supporting reproducible deployments.
- Portability: the same image runs across laptops, CI, and production clusters.
- Density: many containers run on one host with minimal overhead compared with virtual machines.
Applications
- Packaging microservices for independent build, ship, and scale cycles.
- Reproducible CI pipelines where build and test run in disposable containers.
- Edge and IoT deployment of lightweight workloads.
- Data-science environments pinned to exact dependency versions for reproducibility.