Documentation for Docker Official Images in docker-library
Shell Perl Dockerfile
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.common-templates Refactor the way information (especially links) are presented Apr 22, 2017
.template-helpers Minor template adjustment for readability Jul 25, 2018
.travis Add "license.md" to the list of files Travis verifies Dec 13, 2017
adminer Run update.sh Jun 29, 2018
aerospike Run update.sh Aug 3, 2018
alpine Run update.sh Jul 6, 2018
alt Run update.sh Jul 30, 2018
amazonlinux Run update.sh Jun 26, 2018
arangodb Run update.sh Aug 16, 2018
backdrop Run update.sh Aug 9, 2018
bash Run update.sh Jul 31, 2018
bonita Run update.sh Aug 9, 2018
buildpack-deps Run update.sh Jul 27, 2018
busybox Run update.sh Jul 31, 2018
cassandra Run update.sh Aug 2, 2018
centos Run update.sh Aug 6, 2018
chronograf Run update.sh Aug 3, 2018
cirros Run update.sh Jul 25, 2018
clearlinux Run update.sh Aug 16, 2018
clefos Run update.sh Jan 23, 2018
clojure Run update.sh Aug 15, 2018
composer Run update.sh Aug 8, 2018
consul Run update.sh Jul 30, 2018
convertigo Run update.sh May 18, 2018
couchbase Run update.sh Jul 23, 2018
couchdb Run update.sh Aug 8, 2018
crate Run update.sh Aug 2, 2018
crux Run update.sh Nov 2, 2017
debian Run update.sh Jul 16, 2018
docker Run update.sh Aug 16, 2018
drupal Run update.sh Aug 4, 2018
eclipse-mosquitto Run update.sh Nov 2, 2017
eggdrop Run update.sh Aug 6, 2018
elasticsearch Run update.sh Jun 18, 2018
elixir Run update.sh Aug 8, 2018
erlang Run update.sh Aug 17, 2018
euleros Run update.sh Nov 15, 2017
fedora Run update.sh May 11, 2018
flink Run update.sh Aug 14, 2018
fsharp Run update.sh Jul 17, 2018
gazebo Run update.sh Aug 17, 2018
gcc Run update.sh Jul 26, 2018
geonetwork Run update.sh Aug 16, 2018
ghost Run update.sh Aug 14, 2018
golang Run update.sh Aug 14, 2018
gradle Run update.sh Jul 17, 2018
groovy Run update.sh Aug 14, 2018
haproxy Run update.sh Jul 31, 2018
haskell Run update.sh Jun 5, 2018
haxe Run update.sh Jul 24, 2018
hello-seattle Run update.sh Jul 11, 2018
hello-world Run update.sh Aug 15, 2018
hola-mundo Run update.sh Jul 11, 2018
httpd Run update.sh Aug 10, 2018
hylang Run update.sh Jan 2, 2018
ibmjava Run update.sh Aug 13, 2018
influxdb Run update.sh Aug 6, 2018
irssi Run update.sh Aug 10, 2018
jetty Run update.sh Jun 26, 2018
joomla Run update.sh Aug 10, 2018
jruby Run update.sh Jul 2, 2018
julia Run update.sh Aug 10, 2018
kaazing-gateway Run update.sh Jul 12, 2018
kapacitor Run update.sh Aug 8, 2018
kibana Run update.sh Jun 18, 2018
known Run update.sh Aug 6, 2018
kong Run update.sh Jul 7, 2018
lightstreamer Run update.sh Jul 12, 2018
logstash Run update.sh Jun 18, 2018
mageia Run update.sh May 30, 2018
mariadb Run update.sh Aug 16, 2018
matomo Run update.sh Jun 6, 2018
maven Run update.sh Jun 22, 2018
mediawiki Run update.sh Jul 18, 2018
memcached Run update.sh Aug 14, 2018
mongo-express Run update.sh Jul 30, 2018
mongo Run update.sh Aug 16, 2018
mono Run update.sh Aug 8, 2018
mysql Run update.sh Aug 14, 2018
nats-streaming Run update.sh Jul 4, 2018
nats Run update.sh Jul 6, 2018
neo4j Run update.sh Jul 27, 2018
neurodebian Run update.sh May 25, 2018
nextcloud Run update.sh Aug 16, 2018
nginx Run update.sh Jul 24, 2018
node Run update.sh Aug 16, 2018
notary Run update.sh Nov 2, 2017
nuxeo Run update.sh Jul 26, 2018
odoo Run update.sh Aug 9, 2018
open-liberty Run update.sh Aug 2, 2018
openjdk Run update.sh Aug 14, 2018
opensuse Run update.sh May 15, 2018
oraclelinux Run update.sh Aug 6, 2018
orientdb Run update.sh Aug 14, 2018
owncloud Run update.sh Jul 31, 2018
percona Run update.sh Jul 31, 2018
perl Run update.sh Aug 13, 2018
photon Run update.sh Aug 16, 2018
php-zendserver Run update.sh Jul 9, 2018
php Run update.sh Jul 26, 2018
piwik Run update.sh Jun 6, 2018
plone Run update.sh Jun 25, 2018
postgres Run update.sh Aug 14, 2018
pypy Run update.sh Jul 31, 2018
python Run update.sh Aug 4, 2018
r-base Run update.sh Jul 9, 2018
rabbitmq Run update.sh Jul 31, 2018
rakudo-star Run update.sh Aug 8, 2018
rapidoid Run update.sh Aug 6, 2018
redis Run update.sh Aug 4, 2018
redmine Run update.sh Aug 2, 2018
registry Run update.sh Dec 12, 2017
rethinkdb Run update.sh Nov 2, 2017
rocket.chat Run update.sh Aug 14, 2018
ros Run update.sh Jun 12, 2018
ruby Run update.sh Jul 25, 2018
rust Run update.sh Aug 2, 2018
scratch Add a quote blurb from the upstream docs to the scratch description Jul 3, 2017
sentry Run update.sh Jun 25, 2018
silverpeas Run update.sh Aug 2, 2018
sl Run update.sh Aug 14, 2018
solr Run update.sh Jul 2, 2018
sonarqube Run update.sh Aug 9, 2018
sourcemage Run update.sh Nov 2, 2017
spiped Run update.sh Jul 6, 2018
storm Run update.sh Jun 11, 2018
swarm Run update.sh Jun 1, 2018
swift Run update.sh Aug 3, 2018
swipl Run update.sh Jul 12, 2018
teamspeak Run update.sh Aug 2, 2018
telegraf Run update.sh Aug 8, 2018
thrift Run update.sh Feb 20, 2018
tomcat Run update.sh Jul 31, 2018
tomee Run update.sh Jul 24, 2018
traefik Run update.sh Aug 2, 2018
ubuntu Run update.sh Jul 26, 2018
vault Run update.sh Aug 17, 2018
websphere-liberty Run update.sh Aug 15, 2018
wordpress Run update.sh Aug 14, 2018
xwiki Run update.sh Jul 20, 2018
yourls Run update.sh Jul 19, 2018
znc Run update.sh Jul 20, 2018
zookeeper Run update.sh Aug 13, 2018
.dockerignore Add simple .dockerignore Aug 7, 2015
.travis.yml Add "ymlfmt" for enforcing consistent YAML whitespace Nov 28, 2017
Dockerfile Reorganize "push.pl" to put the "vimdiff" logic in one place for cool… Apr 20, 2015
LICENSE Remove ending year from LICENSE Jul 30, 2018
README.md Add autogenerated Table of Contents Feb 27, 2018
generate-repo-stub-readme.sh Add per-arch build-status badges Apr 13, 2018
markdownfmt.sh Add "ymlfmt" for enforcing consistent YAML whitespace Nov 28, 2017
push.pl Add "--namespace" to push.pl Nov 17, 2017
push.sh Support non-tty mode in push.sh Jun 2, 2015
update.sh Try generating tag list before generating file (so that we don't crea… Jul 19, 2018
ymlfmt.sh Add "ymlfmt" for enforcing consistent YAML whitespace Nov 28, 2017

README.md

What is this?

This repository contains the docs for each of the Docker official images. See docker-library/official-images for the configuration how the images are built. To see all of the official images go to the hub.

All Markdown files here are run through tianon's fork of markdownfmt (only forked to add some smaller-diff preference and minor DockerHub-compatibility changes), and verified as formatted correctly via Travis-CI.

Table of Contents

  1. What is this?
    1. Table of Contents
  2. How do I add a new image's docs
  3. How do I update an image's docs
  4. What are all these files?
    1. update.sh
    2. generate-repo-stub-readme.sh
    3. push.pl
    4. .template-helpers/generate-dockerfile-links-partial.sh
    5. .template-helpers/template.md and .template-helpers/user-feedback.md
    6. folder <image name>
    7. <image name>/README.md
    8. <image name>/content.md
    9. <image name>/README-short.txt
    10. <image name>/logo.png
    11. <image name>/license.md
    12. <image name>/maintainer.md
    13. <image name>/github-repo
    14. <image name>/user-feedback.md
  5. Issues and Contributing

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)
  • add a logo.png (recommended)

Optionally:

  • run ./markdownfmt.sh -l myimage to verify whether format of your markdown files is compliant to tianon/markdownfmt. In case you see any file names, markdownfmt detected some issues, which might 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.

How do I update an image's docs

To update README.md for a specific image do not edit README.md directly. Please edit content.md or another appropriate file within the folder. To see the changes, 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 above.

What are all these files?

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 (see below on what customizations are available). 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).

generate-repo-stub-readme.sh

This is used to generate a simple README.md to put in the image's repo. Argument is the name of the image, like golang and it then outputs the readme to standard out.

push.pl

This is 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.

.template-helpers/generate-dockerfile-links-partial.sh

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/template.md and .template-helpers/user-feedback.md

These files are the templates used in building the <image name>/README.md file, in combination with the individual image's files.

folder <image name>

This is where all the partial and generated files for a given image reside, (ex: golang/).

<image name>/README.md

This file is generated using update.sh.

<image name>/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. See the doc on Official Repos for more information on long description. The issues and contribution section is generated by the script but can be overridden. 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

<image name>/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.

<image name>/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.

<image name>/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.

<image name>/maintainer.md

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

<image name>/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

<image name>/user-feedback.md

This file is an optional override of the default user-feedback.md for those repositories with different issue and contributing policies.

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 Freenode or open up an issue.