---
title: "Docker"
description: "Docker packages applications with all dependencies into portable containers that run identically everywhere. See images, Dockerfile, Compose and use cases."
url: "https://nodea.io/en/glossary/docker"
lang: "en"
updated: "2026-07-13"
---

# Docker

> Docker is a containerization platform that bundles an application with all its dependencies into a lightweight, portable container that runs identically across environments.

**Docker** is a containerization platform that packages an application together with everything it needs to run — libraries, runtime, configuration — into a lightweight, portable container. The same container behaves identically on a developer's laptop, a staging box and production, eliminating the perennial "works on my machine" problem. Since its 2013 debut, Docker has become the de facto standard for shipping software and a cornerstone of [DevOps](https://nodea.io/en/glossary/devops) practice.

## How Docker works

Unlike full [virtualization](https://nodea.io/en/glossary/virtualization), containers do not emulate hardware or boot a separate kernel. They share the host's kernel while Linux primitives provide isolation: namespaces give each container its own view of processes, networking and the filesystem, and cgroups enforce CPU and memory limits. The core vocabulary:

- **Image** — an immutable, layered template built from a **Dockerfile**; layers are cached and shared, so rebuilds and pulls stay fast.
- **Container** — a running instance of an image with a thin, disposable writable layer on top.
- **Registry** — a repository of images (Docker Hub, GitHub Container Registry, private registries) that servers pull versioned images from.
- **Volumes and networks** — persistent data storage and inter-container communication.
- **Docker Compose** — a YAML definition of a multi-service stack (app, database, cache) started with a single *docker compose up*.

## Docker in practice

Typical workloads where Docker earns its keep:

1. **Development environments** — the whole project stack boots with one command, identical for every team member and disposable at will.
2. **CI/CD pipelines** — the pipeline builds the image once, tests exactly that artifact, and deploys the same bytes to production (see [CI/CD](https://nodea.io/en/glossary/ci-cd)).
3. **Self-hosting on a VPS** — each service runs isolated in its own container; upgrading means swapping the image tag, and rollback is reverting to the previous one.
4. **Orchestration at scale** — across multiple hosts, [Kubernetes](https://nodea.io/en/glossary/kubernetes) or Docker Swarm schedules containers, adding scaling, service discovery and self-healing.

Good habits: prefer small base images (alpine or slim variants), use multi-stage builds to keep build tools out of runtime images, run one process per container, and scan images for known vulnerabilities before deploying.

### How is a Docker container different from a virtual machine?

A VM emulates a full computer with its own kernel, so it weighs gigabytes and boots in minutes. A container shares the host kernel and isolates only processes and the filesystem — megabytes in size, starting in milliseconds. VMs offer stronger isolation; containers win on density, speed and portability.

## Related

- [Kubernetes](https://nodea.io/en/glossary/kubernetes)
- [Virtualization](https://nodea.io/en/glossary/virtualization)
- [CI/CD](https://nodea.io/en/glossary/ci-cd)
- [DevOps](https://nodea.io/en/glossary/devops)
- [Cluster](https://nodea.io/en/glossary/cluster)

---

Languages: [pl](https://nodea.pl/pl/slownik-pojec/docker.md)  
Site index: [llms.txt](https://nodea.io/en/llms.txt)
