Docker files and images to run Ceph in containers
Clone or download
leseb contrib: fix stable release build
This fixes the situation where we have a tag v3.0.1 but v3.0.1rc1 exists
too. The old version of the grep will match both to true so it won't
find any new addition. The regex wasn't precise enough. Now we either
check the exact match is the last or in-between the list.

Signed-off-by: Sébastien Han <>
Latest commit 11acf49 Sep 5, 2018


Ceph Daemon Stars Ceph Daemon Pulls

Build Ceph into container images with upstream support for the latest few Ceph releases on Centos ceph-container also supports builds for multiple distributions.

Find available container image tags

All tags can be found on the Docker Hub. For the daemon-base tags visit. For the daemon tags visit.

Alternatively, you can run the following command (install jq first):

$ curl -s | jq '."results"[] .name'

Be careful, by default the Docker API returns the first page with its 10 elements. To improve your curl you can pass the

Stable images

Since everyone doesn't use Docker Hub API and Docker Hub WebUI doesn't paginate. It's hard to see all available stable images.

Starting August 22th 2018, Ubuntu images are no longer supported. Only OpenSuse and Centos images will be shipped.

Here is a list of available stable Ceph images


Core Components

  • ceph/daemon-base: Base container image containing Ceph core components.
  • ceph/daemon: All-in-one container containing all Ceph daemons.

See README files in subdirectories for instructions on using containers.

Building ceph-container

make is used for ceph-container builds. See make help for all make options.

Specifying flavors for make

The make tooling allows the environment variable FLAVORS to be optionally set by the user to define which flavors to operate on. Flavor specifications follow a strict format that declares what Ceph version to build and what container image to use as the base for the build. See make help for a full description.

Building a single flavor

Once the flavor is selected, specify its name in the FLAVORS environment variable and call the build target:

make FLAVORS=luminous,centos,7 build

Building multiple flavors

Multiple flavors are specified by separating each flavor by a space and surrounding the entire specification in quotes and built the same as a single flavor:

make FLAVORS="luminous,centos,7 kraken,opensuse,42.3"  build

Flavors can be built in parallel easily with the build.parallel target:

make FLAVORS="<flavor> <other flavor> <...>" build.parallel

Building with a specific version of Ceph

Some distributions can select a specific version of Ceph to install. You just have to append the required version to the ceph release code name.

The required version will be saved in CEPH_POINT_RELEASE variable (including the version separator). The version separator is usually a dash ('-') or an equal sign ('='). CEPH_POINT_RELEASE remains empty if no point release is given.

Note that CEPH_VERSION variable still feature the ceph code name, luminous in this example.

make FLAVORS=luminous-12.2.2,centos,7 build


Restructuring ceph-container