Documentation for Docker Official Images in docker-library
Go to file
Docker Library Bot e63a91b841 Run update.sh 2025-09-16 10:10:42 -07:00
.ci Convert all `stack.yml` to `compose.yaml` 2025-05-05 15:34:52 -07:00
.common-templates Fixed maintainer.md 2018-11-18 08:38:29 -07:00
.github/workflows Update to actions/checkout@v4 🙃 2024-07-09 15:37:22 -07:00
.template-helpers Fix broken Windows Server links in helper 2025-08-19 08:48:19 +03:00
adminer Run update.sh 2025-09-08 15:11:01 -07:00
aerospike Run update.sh 2025-09-16 10:10:42 -07:00
almalinux Run update.sh 2025-09-09 14:10:38 -07:00
alpine Run update.sh 2025-07-15 12:10:30 -07:00
alt Run update.sh 2025-06-25 11:10:19 -07:00
amazoncorretto Run update.sh 2025-07-18 13:10:41 -07:00
amazonlinux Run update.sh 2025-09-11 18:10:17 -07:00
api-firewall Run update.sh 2025-08-19 10:11:00 -07:00
arangodb Run update.sh 2025-08-04 15:10:55 -07:00
archlinux Run update.sh 2025-09-15 10:11:49 -07:00
backdrop Run update.sh 2025-05-16 11:09:54 -07:00
bash Run update.sh 2025-09-10 17:10:19 -07:00
bonita Run update.sh 2025-05-05 16:10:01 -07:00
buildpack-deps Run update.sh 2025-08-12 16:10:16 -07:00
busybox Run update.sh 2025-09-16 10:10:42 -07:00
caddy Run update.sh 2025-08-25 14:10:27 -07:00
cassandra Run update.sh 2025-09-08 15:11:01 -07:00
chronograf Run update.sh 2025-08-19 10:11:00 -07:00
cirros Run update.sh 2024-09-26 17:09:06 -07:00
clearlinux Run update.sh 2025-07-21 17:10:22 -07:00
clefos Run update.sh 2024-07-29 15:09:01 -07:00
clickhouse Run update.sh 2025-09-11 10:10:42 -07:00
clojure Run update.sh 2025-09-12 17:11:05 -07:00
composer Run update.sh 2025-08-21 10:10:32 -07:00
convertigo Run update.sh 2025-09-05 10:10:25 -07:00
couchbase Run update.sh 2025-08-13 14:10:33 -07:00
couchdb Run update.sh 2025-05-06 11:09:52 -07:00
crate Run update.sh 2025-07-17 12:10:03 -07:00
dart Run update.sh 2025-09-10 16:10:19 -07:00
debian Run update.sh 2025-09-08 14:10:09 -07:00
docker Run update.sh 2025-09-04 10:10:22 -07:00
drupal Run update.sh 2025-09-04 12:10:17 -07:00
eclipse-mosquitto Run update.sh 2025-07-11 17:10:26 -07:00
eclipse-temurin Run update.sh 2025-08-19 10:11:00 -07:00
eggdrop Run update.sh 2025-06-30 11:10:14 -07:00
elasticsearch Run update.sh 2025-09-02 11:10:21 -07:00
elixir Run update.sh 2025-06-30 11:10:14 -07:00
emqx Run update.sh 2025-09-04 10:10:22 -07:00
erlang Run update.sh 2025-09-15 10:11:49 -07:00
fedora Run update.sh 2025-09-15 10:11:49 -07:00
flink Run update.sh 2025-07-30 10:10:49 -07:00
fluentd Run update.sh 2025-08-04 11:10:33 -07:00
friendica Run update.sh 2025-09-08 11:10:17 -07:00
gazebo Run update.sh 2025-08-25 14:10:27 -07:00
gcc Run update.sh 2025-08-28 12:10:23 -07:00
geonetwork Run update.sh 2025-06-09 11:09:57 -07:00
ghost Run update.sh 2025-09-15 14:10:28 -07:00
golang Run update.sh 2025-09-15 14:10:28 -07:00
gradle Run update.sh 2025-09-08 11:10:17 -07:00
groovy Run update.sh 2025-07-02 10:10:10 -07:00
haproxy Run update.sh 2025-09-05 15:10:36 -07:00
haskell Run update.sh 2025-08-20 12:10:30 -07:00
haxe Run update.sh 2025-08-19 10:11:00 -07:00
hello-world Run update.sh 2025-08-13 16:10:19 -07:00
hitch Run update.sh 2025-06-11 11:10:17 -07:00
httpd Run update.sh 2025-08-12 15:10:26 -07:00
hylang Run update.sh 2025-08-19 10:11:00 -07:00
ibm-semeru-runtimes Run update.sh 2025-08-13 12:10:24 -07:00
ibmjava Run update.sh 2025-09-11 10:10:42 -07:00
influxdb Run update.sh 2025-09-12 11:10:32 -07:00
irssi Run update.sh 2025-08-12 17:10:45 -07:00
jetty Run update.sh 2025-09-16 10:10:42 -07:00
joomla Run update.sh 2025-09-11 10:10:42 -07:00
jruby Run update.sh 2025-08-28 15:10:14 -07:00
julia Run update.sh 2025-09-16 10:10:42 -07:00
kapacitor Run update.sh 2025-09-08 15:11:01 -07:00
kibana Run update.sh 2025-09-02 11:10:21 -07:00
kong Run update.sh 2025-06-05 10:10:09 -07:00
krakend Run update.sh 2025-09-09 14:10:38 -07:00
lightstreamer Run update.sh 2025-06-12 11:10:04 -07:00
liquibase Run update.sh 2025-07-09 13:10:08 -07:00
logstash Run update.sh 2025-09-02 11:10:21 -07:00
mageia Run update.sh 2025-09-15 11:10:39 -07:00
mariadb Run update.sh 2025-08-12 10:13:16 -07:00
matomo Run update.sh 2025-09-01 16:10:48 -07:00
maven Run update.sh 2025-08-20 12:10:30 -07:00
mediawiki Run update.sh 2025-09-01 16:10:48 -07:00
memcached Run update.sh 2025-08-13 14:10:33 -07:00
mongo Run update.sh 2025-09-10 17:10:19 -07:00
mongo-express Run update.sh 2025-06-04 16:10:04 -07:00
monica Run update.sh 2025-08-19 15:10:21 -07:00
mysql Run update.sh 2025-09-08 15:11:01 -07:00
nats Run update.sh 2025-09-09 15:10:10 -07:00
neo4j Run update.sh 2025-09-04 10:10:22 -07:00
neurodebian Run update.sh 2025-06-03 13:10:29 -07:00
nextcloud Run update.sh 2025-09-15 10:11:49 -07:00
nginx Run update.sh 2025-08-13 12:10:24 -07:00
node Run update.sh 2025-09-10 16:10:19 -07:00
notary Run update.sh 2025-08-25 14:10:27 -07:00
odoo Run update.sh 2025-09-09 17:10:40 -07:00
open-liberty Run update.sh 2025-09-11 10:10:42 -07:00
openjdk Run update.sh 2025-09-15 10:11:49 -07:00
oraclelinux Run update.sh 2025-09-11 14:10:16 -07:00
orientdb Run update.sh 2025-09-04 10:10:22 -07:00
percona Run update.sh 2025-08-28 11:10:27 -07:00
perl Run update.sh 2025-08-25 14:10:27 -07:00
photon Run update.sh 2025-09-08 11:10:17 -07:00
php Run update.sh 2025-09-12 17:11:05 -07:00
php-zendserver Run update.sh 2024-07-29 15:09:01 -07:00
phpmyadmin Run update.sh 2025-08-28 12:10:23 -07:00
plone Run update.sh 2025-08-27 10:10:24 -07:00
postfixadmin Run update.sh 2025-09-11 10:10:42 -07:00
postgres Run update.sh 2025-09-08 15:11:01 -07:00
pypy Run update.sh 2025-08-19 10:11:00 -07:00
python Run update.sh 2025-08-19 10:11:00 -07:00
r-base Run update.sh 2025-06-13 11:09:51 -07:00
rabbitmq Run update.sh 2025-09-16 10:10:42 -07:00
rakudo-star Run update.sh 2025-06-02 11:10:05 -07:00
redis Run update.sh 2025-08-18 12:10:24 -07:00
redmine Run update.sh 2025-09-08 15:11:01 -07:00
registry Run update.sh 2025-07-10 10:10:03 -07:00
rethinkdb Add Docker Hub categories (#2446) 2024-05-17 11:44:00 -07:00
rocket.chat Run update.sh 2025-09-05 15:10:36 -07:00
rockylinux Run update.sh 2025-06-10 14:09:58 -07:00
ros Run update.sh 2025-06-20 17:10:10 -07:00
ruby Run update.sh 2025-09-16 10:10:42 -07:00
rust Run update.sh 2025-08-26 15:10:49 -07:00
sapmachine Run update.sh 2025-07-15 14:10:19 -07:00
satosa Run update.sh 2025-07-28 10:11:32 -07:00
scratch Add Docker Hub categories (#2446) 2024-05-17 11:44:00 -07:00
silverpeas Run update.sh 2025-08-07 10:10:20 -07:00
solr Run update.sh 2025-09-12 11:10:32 -07:00
sonarqube Run update.sh 2025-09-01 16:10:48 -07:00
spark Run update.sh 2025-05-29 12:10:00 -07:00
spiped Run update.sh 2025-08-29 11:10:17 -07:00
storm Run update.sh 2025-08-11 10:10:46 -07:00
swift Run update.sh 2025-09-16 10:10:42 -07:00
swipl Run update.sh 2025-09-01 16:10:48 -07:00
teamspeak Run update.sh 2025-06-04 16:10:04 -07:00
telegraf Run update.sh 2025-09-09 12:10:11 -07:00
tomcat Run update.sh 2025-09-12 17:11:05 -07:00
tomee Run update.sh 2025-08-19 12:10:28 -07:00
traefik Run update.sh 2025-09-09 14:10:38 -07:00
ubuntu Run update.sh 2025-09-15 14:10:28 -07:00
unit Run update.sh 2025-08-18 17:10:23 -07:00
varnish Run update.sh 2025-08-29 12:10:07 -07:00
websphere-liberty Run update.sh 2025-09-11 10:10:42 -07:00
wordpress Run update.sh 2025-08-13 14:10:33 -07:00
xwiki Run update.sh 2025-09-10 10:11:36 -07:00
yourls Run update.sh 2025-08-19 10:11:00 -07:00
znc Run update.sh 2025-07-01 15:10:26 -07:00
zookeeper Run update.sh 2025-09-08 10:10:19 -07:00
.dockerignore Add simple .dockerignore 2015-08-07 14:45:51 -07:00
.gitattributes Add .gitattributes: Ensure Unix line endings for text files 2025-06-26 11:48:21 +02:00
Dockerfile Update `push.pl` runtime to Perl 5.39 and Debian Bookworm 2024-07-05 16:46:01 -07:00
LICENSE Remove ending year from LICENSE 2018-07-30 09:13:25 -07:00
README.md Convert all `stack.yml` to `compose.yaml` 2025-05-05 15:34:52 -07:00
generate-repo-stub-readme.sh Remove badges from "repo stub readme" contents 2024-11-19 16:46:13 -08:00
get-categories.sh Add Docker Hub categories (#2446) 2024-05-17 11:44:00 -07:00
markdownfmt.sh Update shebang from /bin/bash to /usr/bin/env bash 2025-03-24 16:34:12 -07:00
metadata.json Add Docker Hub categories (#2446) 2024-05-17 11:44:00 -07:00
metadata.sh Add Docker Hub categories (#2446) 2024-05-17 11:44:00 -07:00
parallel-update.sh Add "parallel update" script to generate multiple markdown files simultaneously 2020-01-24 15:04:52 -08:00
push.pl Trim descriptions based on bytes, not characters 2024-07-05 16:35:22 -07:00
push.sh Update shebang from /bin/bash to /usr/bin/env bash 2025-03-24 16:34:12 -07:00
update.sh Remove outdated per-arch Jenkins badges 2025-06-03 11:51:16 -07:00
ymlfmt.sh Update shebang from /bin/bash to /usr/bin/env bash 2025-03-24 16:34:12 -07:00

README.md

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 update.sh status badge
    • amd64 update.sh status badge
    • arm32v5 update.sh status badge
    • arm32v6 update.sh status badge
    • arm32v7 update.sh status badge
    • arm64v8 update.sh status badge
    • i386 update.sh status badge
    • ppc64le update.sh status badge
    • s390x update.sh status badge
    • windows-amd64 update.sh 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>
    2. README.md
    3. content.md
    4. get-help.md
    5. github-repo
    6. license.md
    7. logo.png
    8. maintainer.md
    9. metadata.json
    10. README-short.txt
    11. compose.yaml
  5. Files for main Docs repo
    1. update.sh
    2. markdownfmt.sh and ymlfmt.sh
    3. .template-helpers/generate-dockerfile-links-partial.sh
    4. .template-helpers/
  6. Scripts unrelated to templates
    1. generate-repo-stub-readme.sh
    2. push.pl and push.sh
  7. Issues and Contributing

How do I update an image's docs

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

After opening your Pull Request the changes will be checked by an automated markdownfmt.sh 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 content.md (required)
  • Create a license.md (required)
  • Create a maintainer.md (required)
  • Create a github-repo (required)
  • Create a metadata.json (required)
  • Add a logo.png (recommended)

Optionally:

  • Run ./markdownfmt.sh -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 ./markdownfmt.sh -d myimage to see a diff of changes required to pass.
  • Run ./update.sh myimage to generate myimage/README.md for manual review of the generated copy.
    Note: do not actually commit the README.md 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. content.md) and generated files (e.g. README.md) for a given image reside, (e.g. golang/). It must match the name of the image used in docker-library/official-images.

README.md

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

content.md

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

%%LOGO%%

# How to use this image

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

get-help.md

This file is an optional override of the default get-help.md. 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.

github-repo

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:

https://github.com/docker-library/golang

license.md

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](http://golang.org/LICENSE) for the software contained in this image.

logo.png

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 content.md, put %%LOGO%% as shown above in the basic content.md layout.

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

maintainer.md

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

metadata.json

This file contains data about the repo for Docker Hub. The minimum file is defined below. ./metadata.sh [repo-name] must be used to correctly format it (use -w to apply its suggested format changes). Only three sorted unique Docker Hub categories are allowed. metadata.json in the root contains the list of categories to choose from. See descriptions for the categories on the Docker docs site.

{
    "hub": {
         "categories": []
    }
}

README-short.txt

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.

compose.yaml

This optional file contains a small, working Compose file showing off how to use the image. To use the compose.yaml, add %%COMPOSE%% to the content.md and this will embed the YAML.

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

update.sh

This is the main script used to generate the README.md 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).

markdownfmt.sh and ymlfmt.sh

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

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

.template-helpers/

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

Scripts unrelated to templates

generate-repo-stub-readme.sh

This is used to generate a simple README.md to put in the image's repo. We use this in Git repositories within https://github.com/docker-library to simplify our maintenance, but it is not required for anyone else. The only argument is the name of the image (or repo), like golang and it then outputs the readme to standard out.

push.pl and push.sh

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 push.pl.

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.