What it is and the problem it solves
Docker is an open-source containerisation platform released in March 2013. It solves environment inconsistency by packaging applications and their dependencies into portable, isolated Linux process containers.
How it works
Docker uses Linux kernel features—cgroups, namespaces, and OverlayFS—to isolate processes in lightweight containers without virtual machines. It implements a high-level API to manage those isolated-process containers. Since version 0.9, it replaced LXC with its own Go-based libcontainer to interface directly with kernel virtualization facilities.
What works
Applications packaged with Docker run consistently across different Linux environments. The isolation provided by cgroups and namespaces works reliably when host kernels support them. Its high-level API simplifies container lifecycle management for developers.
What does not
Docker does not run natively on Windows or macOS. It relies on Linux-specific kernel features, so non-Linux hosts require a Linux VM layer, reintroducing some overhead Docker was meant to avoid.
What it changes
Docker shifts deployment from machine-centric (VMs, bare metal) to process-centric packaging. It makes containerisation the default abstraction for application delivery on Linux—but does not solve configuration drift across host kernels or runtime dependencies outside the container.
Is it worth your time
Yes—if you deploy software on Linux and need consistent runtime environments. It eliminates VM overhead but adds operational complexity for non-Linux platforms and requires deep kernel awareness to debug.





