docker-ce  19.03.1
About: Docker CE is a project to pack, ship and run any application as a lightweight container. Docker containers can run anywhere, on a laptop or at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more. Community edition.
  Fossies Dox: docker-ce-19.03.1.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

docker-ce Documentation

Some Fossies usage hints in advance:

  1. To see the Doxygen generated documentation please click on one of the items in the steelblue colored "quick index" bar above or use the side panel at the left which displays a hierarchical tree-like index structure and is adjustable in width.
  2. If you want to search for something by keyword rather than browse for it you can use the client side search facility (using Javascript and DHTML) that provides live searching, i.e. the search results are presented and adapted as you type in the Search input field at the top right.
  3. Doxygen doesn't incorporate all member files but just a definable subset (basically the main project source code files that are written in a supported language). So to search and browse all member files you may visit the Fossies
  4. docker-ce-19.03.1.tar.gz contents page and use the Fossies standard member browsing features (also with source code highlighting and additionally with optional code folding).

Docker CE

This repository hosts open source components of Docker CE products. The master branch serves to unify the upstream components on a regular basis. Long-lived release branches host the code that goes into a product version for the lifetime of the product.

This repository is solely maintained by Docker, Inc.


There are separate issue-tracking repos for the end user Docker CE products specialized for a platform. Find your issue or file a new issue for the platform you are using:

Unifying upstream sources

The master branch is a combination of components adapted from different upstream git repos into a unified directory structure using the moby-components tool.

You can view the upstream git repos in the components.conf file. Each component is isolated into its own directory under the components directory.

The tool will import each component git history within the appropriate path.

For example, this shows a commit is imported into the component engine from moby/moby@a27b4b8 into the components/engine directory.

commit 5c70746915d4589a692cbe50a43cf619ed0b7152
Author: Andrea Luzzardi <>
Date:   Sat Jan 19 00:13:39 2013

    Initial commit
    Upstream-commit: a27b4b8cb8e838d03a99b6d2b30f76bdaf2f9e5d
    Component: engine

 components/engine/container.go       | 203 ++++++++++++++++++++++++++++...
 components/engine/container_test.go  | 186 ++++++++++++++++++++++++++++...
 components/engine/docker.go          | 112 ++++++++++++++++++++++++++++...
 components/engine/docker_test.go     | 175 ++++++++++++++++++++++++++++...
 components/engine/filesystem.go      |  52 ++++++++++++++++++++++++++++...
 components/engine/filesystem_test.go |  35 +++++++++++++++++++++++++++
 components/engine/lxc_template.go    |  94 ++++++++++++++++++++++++++++...
 components/engine/state.go           |  48 ++++++++++++++++++++++++++++...
 components/engine/utils.go           | 115 ++++++++++++++++++++++++++++...
 components/engine/utils_test.go      | 126 ++++++++++++++++++++++++++++...
 10 files changed, 1146 insertions(+)

Updates to master branch

Main development of new features should be directed towards the upstream git repos. The master branch of this repo will periodically pull in new changes from upstream to provide a point for integration.

Branching for release

When a release is started for Docker CE, a new branch will be created from master. Branch names will be YY.MM to represent the time-based release version of the product, e.g. 17.06.

Adding fixes to release branch

Note: every commit of a fix should affect files only within one component directory.

Fix available upstream

A PR cherry-picking the necessary commits should be created against the release branch. If the the cherry-pick cannot be applied cleanly, the logic of the fix should be ported manually.

No fix yet

First create the PR with the fix for the release branch. Once the fix has been merged, be sure to port the fix to the respective upstream git repo.

Release tags

There will be a git tag for each release candidate (RC) and general availability (GA) release. The tag will only point to commits on release branches.