Skip to content
Glossary

Container

A lightweight, portable package containing an application and all its dependencies — isolated from the host operating system using Linux kernel features.

Infrastructure← Back to Glossary

A container is a standardised unit of software packaging that bundles an application together with all of its dependencies — libraries, configuration files, runtime environment — into a single portable artefact that runs consistently regardless of the underlying infrastructure. Containers are isolated from one another and from the host OS using Linux kernel features (namespaces and control groups), but they share the host kernel — making them far more lightweight than virtual machines.

Containers vs. virtual machines

A virtual machine (VM) virtualises an entire computer, including the hardware layer, and runs a complete guest operating system. A VM image is typically gigabytes in size and takes minutes to start. A container virtualises only the application environment, sharing the host OS kernel. Container images are typically tens to hundreds of megabytes and start in seconds or milliseconds. The tradeoff is isolation depth: VMs provide stronger isolation (a separate kernel per VM), while containers provide stronger density and portability.

Docker and the OCI standard

Docker popularised containers and the image format from 2013 onward. The Open Container Initiative (OCI) subsequently standardised the image format and runtime specification — meaning that container images built with Docker can run on any OCI-compliant runtime (containerd, CRI-O, etc.). Kubernetes uses OCI-compliant runtimes and does not depend on Docker directly.

Containers in enterprise security contexts

Containers introduce a distinct security posture. Because containers share the host kernel, a container escape vulnerability (a bug that allows code in the container to access the host) has broader impact than a VM escape. Hardening measures — read-only filesystems, non-root users, seccomp profiles, AppArmor/SELinux policies, admission controllers blocking privileged containers — are required for production security. A platform layer (like AravaliStack) enforces these policies uniformly so individual application teams do not need to configure them.

See it in action

Request a demo of AravaliStack and see how these concepts come to life in a production platform.