docker
also: containerization, container runtime
Docker is a containerization platform that packages applications and their dependencies into isolated, portable units called containers, enabling them to run consistently across different systems.
Docker simplifies application deployment by wrapping software, libraries, and configuration files into a lightweight container image. Unlike virtual machines, containers share the host OS kernel, making them faster and more resource-efficient while maintaining isolation between applications.
A Docker image is a read-only template that defines what goes into a container. You build images from a Dockerfile with instructions like copying files and installing packages. Once built, you run containers from images using the docker run command.
Example: Instead of installing Node.js, npm, and dependencies on a server, you create a Dockerfile that specifies a base image, copies your app code, and installs dependencies. Docker builds this into an image, which you can then run as a container on any machine with Docker installed—no "works on my machine" problems.
Docker also includes a registry system (Docker Hub) for sharing images and orchestration tools like Docker Compose for managing multiple containers.