Docker (software)
Docker is a software platform for building applications based on containers — small and lightweight execution environments that share the operating system kernel but otherwise are isolated from each other. Docker enables developers to package applications with all of their dependencies into a standardized unit for software development. This package, called a Docker image, includes everything an application needs to run: code, runtime, system tools, system libraries, and settings.
Docker allows applications to be rapidly and reliably deployed from one computing environment to another. This consistency is achieved because the Docker image, and therefore the container, functions the same way regardless of where it is deployed. This solves the "it works on my machine" problem, as the application runs in a consistent environment regardless of the underlying infrastructure.
The Docker platform is based on open-source technology and automates the deployment of applications inside software containers, providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux. Docker leverages resource isolation features of the Linux kernel such as cgroups and kernel namespaces to allow independent containers to run within a single Linux instance.
Docker is widely used in DevOps workflows, allowing for faster development cycles, improved collaboration between development and operations teams, and more efficient use of infrastructure resources. It facilitates continuous integration and continuous delivery (CI/CD) pipelines and supports microservices architectures by enabling the easy packaging and deployment of individual services. Docker images are typically stored in a registry, such as Docker Hub, from which they can be pulled and run on any Docker-compatible host. Docker is a core component of many cloud-native technologies and platforms.