Documentation for Docker Official Images in docker-library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Docker Library Bot bfb81f6629 Run 5 days ago
.ci Fix dead link in CI 9 months ago
.common-templates Fixed 3 years ago
.github/workflows Ensure exit code on git diff can cause failure as well 1 year ago
.template-helpers Adjust variant-alpine wording 11 months ago
adminer Run 3 months ago
aerospike Run 3 months ago
almalinux Run 2 months ago
alpine Run 2 months ago
alt Run 4 months ago
amazoncorretto Run 1 month ago
amazonlinux Run 1 week ago
arangodb Run 2 months ago
archlinux Run 1 week ago
backdrop Run 1 year ago
bash Run 1 week ago
bonita Run 3 months ago
buildpack-deps Run 1 month ago
busybox Run 3 weeks ago
caddy Run 2 months ago
cassandra Run 4 months ago
centos Run 4 months ago
chronograf Run 3 months ago
cirros Run 11 months ago
clearlinux Run 1 week ago
clefos Run 1 year ago
clojure Run 2 weeks ago
composer Run 1 week ago
consul Run 5 days ago
convertigo Run 1 month ago
couchbase Run 1 month ago
couchdb Run 2 weeks ago
crate Run 1 month ago
dart Run 7 days ago
debian Run 4 weeks ago
docker Run 2 weeks ago
drupal Run 6 days ago
eclipse-mosquitto Run 2 months ago
eclipse-temurin Run 6 days ago
eggdrop Run 4 weeks ago
elasticsearch Run 6 days ago
elixir Run 1 month ago
erlang Run 1 week ago
express-gateway Run 9 months ago
fedora Run 2 months ago
flink Run 1 month ago
fluentd Run 4 months ago
friendica Run 2 weeks ago
gazebo Run 1 month ago
gcc Run 6 months ago
geonetwork Run 1 month ago
ghost Run 6 days ago
golang Run 7 days ago
gradle Run 4 weeks ago
groovy Run 3 weeks ago
haproxy Run 7 days ago
haskell Run 2 weeks ago
haxe Run 6 days ago
hello-world Run 4 months ago
hitch Run 1 month ago
httpd Run 4 weeks ago
hylang Run 7 days ago
ibm-semeru-runtimes Run 1 month ago
ibmjava Run 2 months ago
influxdb Run 2 months ago
irssi Run 6 months ago
jetty Run 2 months ago
jobber Run 1 year ago
joomla Run 1 month ago
jruby Run 2 months ago
julia Run 7 days ago
kapacitor Run 3 months ago
kibana Run 6 days ago
kong Run 1 month ago
lightstreamer Run 2 weeks ago
logstash Run 6 days ago
mageia Run 10 months ago
mariadb Run 2 months ago
matomo Run 1 month ago
maven Run 1 week ago
mediawiki Run 1 month ago
memcached Run 2 months ago
mongo Run 7 days ago
mongo-express Run 7 months ago
monica Run 6 days ago
mono Run 2 months ago
mysql Run 3 months ago
nats Run 5 days ago
nats-streaming Run 2 months ago
neo4j Run 6 days ago
neurodebian Run 5 months ago
nextcloud Run 2 months ago
nginx Run 3 weeks ago
node Run 1 week ago
notary Run 7 months ago
odoo Run 1 week ago
open-liberty Run 2 months ago
openjdk Run 7 days ago
oraclelinux Run 7 days ago
orientdb Run 3 weeks ago
percona Run 3 weeks ago
perl Run 2 months ago
photon Run 5 days ago
php Run 1 month ago
php-zendserver Run 8 months ago
phpmyadmin Run 8 months ago
plone Run 2 months ago
postfixadmin Run 5 months ago
postgres Run 2 weeks ago
pypy Run 3 months ago
python Run 7 days ago
r-base Run 3 months ago
rabbitmq Run 2 weeks ago
rakudo-star Run 8 months ago
redis Run 2 months ago
redmine Run 2 weeks ago
registry Run 1 year ago
rethinkdb Run 3 months ago Run 1 week ago
rockylinux Run 1 month ago
ros Run 2 months ago
ruby Run 3 weeks ago
rust Run 6 days ago
sapmachine Run 3 months ago
scratch Add a quote blurb from the upstream docs to the scratch description 5 years ago
silverpeas Run 1 month ago
sl Run 2 weeks ago
solr Run 4 weeks ago
sonarqube Run 4 weeks ago
spiped Run 3 weeks ago
storm Run 3 months ago
swift Run 1 month ago
swipl Run 1 week ago
teamspeak Run 7 months ago
telegraf Run 2 weeks ago
tomcat Run 4 weeks ago
tomee Run 6 days ago
traefik Run 7 days ago
ubuntu Run 2 weeks ago
varnish Run 2 months ago
vault Run 4 weeks ago
websphere-liberty Run 2 months ago
wordpress Run 7 days ago
xwiki Run 2 weeks ago
yourls Run 4 months ago
znc Run 4 months ago
zookeeper Run 8 months ago
.dockerignore Add simple .dockerignore 7 years ago
Dockerfile Update to Mojolicious 8.35 2 years ago
LICENSE Remove ending year from LICENSE 4 years ago Update Table of Contents 4 months ago Adjust repo stub disclaimer to exclude repos where it makes no sense 7 months ago Add "ymlfmt" for enforcing consistent YAML whitespace 4 years ago Add "parallel update" script to generate multiple markdown files simultaneously 2 years ago Move/rename sponsored links section 4 months ago Add logo pushing ability for library/ images! 2 years ago Add an additional clarifying note to the top of the per-architecture repositories 2 years ago Add "ymlfmt" for enforcing consistent YAML whitespace 4 years ago

What is this?

This repository contains the image documentation for each of the Docker Official Images. See docker-library/official-images for more information about the program in general.

All Markdown files here are run through tianon's fork of markdownfmt, and verified as formatted correctly via GitHub Actions.

  • GitHub CI status badge
  • library status badge
    • amd64 status badge
    • arm32v5 status badge
    • arm32v6 status badge
    • arm32v7 status badge
    • arm64v8 status badge
    • i386 status badge
    • ppc64le status badge
    • s390x status badge
    • windows-amd64 status badge

Table of Contents

  1. What is this?
    1. Table of Contents
  2. How do I update an image's docs
  3. How do I add a new image's docs
  4. Files related to an image's docs
    1. folder <image name>
    5. github-repo
    7. logo.png
    9. README-short.txt
    10. stack.yml
  5. Files for main Docs repo
    2. and
    3. .template-helpers/
    4. .template-helpers/
  6. Scripts unrelated to templates
    2. and
  7. Issues and Contributing

How do I update an image's docs

Edit the for an image; not the as it's auto-generated from the contents of the other files in that repo. To see the changes to the, run ./ myimage from the repo root, but do not add the changes to your pull request. See also point below.

After opening your Pull Request the changes will be checked by an automated before it can be merged. A common issue is incorrect spacing such as with two lines missing an empty line between them (double-spaced).

How do I add a new image's docs

  • create a folder for my image: mkdir myimage
  • create a README-short.txt (required, 100 char max)
  • create a (required)
  • create a (required)
  • create a (required)
  • create a github-repo (required)
  • add a logo.png (recommended)


  • run ./ -l myimage to list any files that are non-compliant to tianon/markdownfmt.
    Any files in the list will result in a failed build during continuous integration.
    • run ./ -d myimage to see a diff of changes required to pass.
  • run ./ myimage to generate myimage/ for manual review of the generated copy.
    Note: do not actually commit the file; it is automatically generated/committed before being uploaded to Docker Hub.

Files related to an image's docs

folder <image name>

This is where all the partial (e.g. and generated files (e.g. for a given image reside, (e.g. golang/). It must match the name of the image used in docker-library/official-images.

This file is generated using Do not commit or edit this file; it is regenerated periodically by a bot.

This file contains the main content of your image's long description. The basic parts you should have are a "What Is" section and a "How To" section. The following is a basic layout:

# What is XYZ?

// about what the contained software is


# How to use this image

// descriptions and examples of common use cases for the image
// make use of subsections as necessary

This file is an optional override of the default This is the content of the "Where to get help" part of the "Quick reference" at the top of the generated README. We recommend linking to the best places for community support like forums, chat rooms, or mailing lists.


This file should contain the URL to the GitHub repository for the Dockerfiles that become the images. The file should be in a single line ending in a newline with no extraneous whitespace. Only one GitHub repo per image repository is supported. It is used in generating links. Here is an example for golang:

This file should contain a link to the license for the main software in the image. Here is an example for golang:

View [license information]( for the software contained in this image.


Logo for the contained software. While there are not hard rules on formatting, most existing logos are square or landscape and stay within a few hundred pixels of width. Alternatively, a logo.svg can be used instead, but only one logo file will apply. To use it within, put %%LOGO%% as shown above in the basic layout.

The image is automatically scaled to a 120 pixel square for the top of the Docker Hub page and Hub search results.

This file should contain a link to the maintainers of the Dockerfile.


This is the short description for the Docker Hub, limited to 100 characters in a single line.

Go (golang) is a general purpose, higher-level, imperative programming language.


This optional file contains a small, working Compose file for Docker Swarm showing off how to use the image. To use the stack.yml, add %%STACK%% to the and this will embed the YAML along with a link to directly try it in Play with Docker.

The file must work via docker stack deploy since that is how Play with Docker will launch it, but it is helpful for users to try locally if it works for docker-compose as well. Other official images may be referenced within the YAML to demonstrate the functionality of the image, but no images external to the Docker Official Images program may be referenced.

Files for main Docs repo

This is the main script used to generate the files for each image. The generated file is committed along with the files used to generate it. Accepted arguments are which image(s) you want to update or no arguments to update all of them.

This script assumes bashbrew is in your PATH (for scraping relevant tag information from the library manifest file for each repository). and

These two scripts are for verifying the formatting of Markdown (.md) and YAML (.yml) files, respectively. uses the tianon/markdownfmt image and uses the tianon/ymlfmt image.

This script is used by to create the "Supported tags and respective Dockerfile links" section of each generated from the information in the official-images library/ manifests.


The scripts and Markdown files in here are used in building an image's file in combination with its individual files.

Scripts unrelated to templates

This is used to generate a simple to put in the image's repo. We use this in Git repositories within to simplify our maintenance, but it is not required for anyone else. Argument is the name of the image, like golang and it then outputs the readme to standard out. and

These are used by us to push the actual content of the READMEs to the Docker Hub as special access is required to modify the Hub description contents. The Dockerfile is used to create a suitable environment for

Issues and Contributing

If you would like to make a new Official Image, be sure to follow the guidelines.

Feel free to make a pull request for fixes and improvements to current documentation. For questions or problems on this repo come talk to us via the #docker-library IRC channel on Libera.Chat or open up an issue.