Docker

Docker is an open-source platform that packages an application and its dependencies into a standardized, isolated unit called a container. Containers run consistently across any environment that has the Docker engine, so software behaves the same way on a developer's laptop, a test server, or production.

What a container is and what it is for

A container is a lightweight, isolated package that bundles your application code together with everything it needs to run: runtime, system libraries, dependencies and configuration. Because that environment travels with the application, a container behaves identically wherever it runs, which removes the classic "it works on my machine" problem.

Containers are built from images. A Docker image is an immutable, read-only template defined by a Dockerfile; running an image produces a container. Images are versioned and shared through registries such as Docker Hub, so a team can pull the exact same build everyone else is using.

In a B2B development context, Docker is typically used to:

  • Standardize local development environments across a whole team, regardless of each developer's operating system.
  • Guarantee parity between development, staging and production to reduce deployment incidents.
  • Package microservices independently so each can be built, scaled and updated on its own.
  • Power continuous integration and continuous delivery (CI/CD) pipelines with reproducible builds.
  • Serve as the foundation for orchestration platforms such as Kubernetes when scaling across multiple servers.

Docker container vs. virtual machine

Both containers and virtual machines isolate workloads, but they do it at different layers. A virtual machine virtualizes hardware and runs a full, separate guest operating system on top of a hypervisor. A Docker container virtualizes the operating system: containers share the host machine's kernel and isolate only the application layer. This makes containers far lighter and faster to start than VMs.

CriterionDocker containerVirtual machine
Isolation levelOperating-system level (shared host kernel)Hardware level (full hypervisor)
Guest OSNone — uses the host kernelA complete guest OS per VM
SizeTypically megabytesTypically gigabytes
Startup timeSeconds or lessMinutes
Resource overheadLowHigher
Density per hostHigh (many containers)Lower (fewer VMs)
Isolation strengthStrong, but shares the kernelStronger, fully separate kernels

The two approaches are not mutually exclusive. A common production pattern runs Docker containers inside virtual machines, combining the strong isolation boundary of the VM with the portability and density of containers.

Questions fréquentes

No. A virtual machine runs a complete guest operating system on top of a hypervisor that virtualizes hardware. Docker containers share the host's operating-system kernel and isolate only the application layer. As a result, containers are smaller, start in seconds, and pack more densely onto a single host than VMs.

An image is an immutable, read-only template that defines what an application and its environment contain, usually built from a Dockerfile. A container is a running instance of that image. You can start many independent containers from the same image, and images are shared through registries such as Docker Hub.

Docker guarantees that an application runs the same way across every environment, which eliminates the "it works on my machine" problem. Teams use it to standardize local setups, keep development and production consistent, package microservices independently, and produce reproducible builds inside CI/CD pipelines.

Kubernetes orchestrates containers but does not require the Docker engine specifically; it works with any runtime that follows container standards. In practice, many teams build their images with Docker and then run those standard-compliant images on Kubernetes, so Docker is commonly part of the workflow even when Kubernetes handles orchestration.

Building a custom software project? We design bespoke software aligned with your roadmap.

See our custom software expertise