Docker Engine overview

Estimated reading time: 5 minutes

Docker Engine is an open source containerization technology for building and containerizing your applications. Docker Engine acts as a client-server application with:

  • A server with a long-running daemon process dockerd.
  • APIs which specify interfaces that programs can use to talk to and instruct the Docker daemon.
  • A command line interface (CLI) client docker.

The CLI uses Docker APIs to control or interact with the Docker daemon through scripting or direct CLI commands. Many other Docker applications use the underlying API and CLI. The daemon creates and manage Docker objects, such as images, containers, networks, and volumes.

Docker Engine has three types of update channels, stable, test, and nightly:

  • Stable gives you latest releases for general availability.
  • Test gives pre-releases that are ready for testing before general availability.
  • Nightly gives you latest builds of work in progress for the next major release.

For more information, see Release channels.

Supported platforms

Docker Engine is available on a variety of Linux platforms, Mac and Windows through Docker Desktop, Windows Server, and as a static binary installation. Find your preferred operating system below.


Platform x86_64
Docker Desktop for Mac (macOS) yes
Docker Desktop for Windows (Microsoft Windows 10) yes


Platform x86_64 / amd64 ARM ARM64 / AARCH64 IBM Power (ppc64le) IBM Z (s390x)
CentOS yes   yes    
Debian yes yes yes    
Fedora yes   yes    
Ubuntu yes yes yes yes yes

Release channels


Year-month releases are made from a release branch diverged from the master branch. The branch is created with format <year>.<month>, for example 18.09. The year-month name indicates the earliest possible calendar month to expect the release to be generally available. All further patch releases are performed from that branch. For example, once v18.09.0 is released, all subsequent patch releases are built from the 18.09 branch.


In preparation for a new year-month release, a branch is created from the master branch with format when the milestones desired by Docker for the release have achieved feature-complete. Pre-releases such as betas and release candidates are conducted from their respective release branches. Patch releases and the corresponding pre-releases are performed from within the corresponding release branch.

Note: While pre-releases are done to assist in the stabilization process, no guarantees are provided.

Binaries built for pre-releases are available in the test channel for the targeted year-month release using the naming format, for example test-18.09.


Nightly builds give you the latest builds of work in progress for the next major release. They are created once per day from the master branch with the version format:


where the time is the commit time in UTC and the final suffix is the prefix of the commit hash, for example 0.0.0-20180720214833-f61e0f7.

These builds allow for testing from the latest code on the master branch.

Note: No qualifications or guarantees are made for the nightly builds.

The release channel for these builds is called nightly.


Docker Engine releases of a year-month branch are supported with patches as needed for 7 months after the first year-month general availability release.

This means bug reports and backports to release branches are assessed until the end-of-life date.

After the year-month branch has reached end-of-life, the branch may be deleted from the repository.


Backports to the Docker products are prioritized by the Docker company. A Docker employee or repository maintainer will endeavour to ensure sensible bugfixes make it into active releases.

If there are important fixes that ought to be considered for backport to active release branches, be sure to highlight this in the PR description or by adding a comment to the PR.

Upgrade path

Patch releases are always backward compatible with its year-month version.


Docker is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Reporting security issues

The Docker maintainers take security seriously. If you discover a security issue, please bring it to their attention right away!

Please DO NOT file a public issue; instead send your report privately to

Security reports are greatly appreciated, and Docker will publicly thank you for it.

Get started

After setting up Docker, you can learn the basics with Getting started with Docker.

docker, installation, install, Docker Engine - Community, Docker Engine - Enterprise, docker editions, stable, edge