Source repo for Docker's Documentation
Go to file
Maria Bermudez 611006f398
Published (#8674)
* add slack webhook to Jenkinsfile

* make jenkinsfile serve private and public docs

After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions.

* Sync published with master (#8619)

* Update install.md

add note: 8 character password minimum length

* Include Ubuntu version in Dockerfile

more recent versions of Ubuntu don't work with the given Dockerfile

* Updated the 3.1.4 release notes to include Centos 7.6 support

* Remove redundant "be"

* Update the "role-based access control" link

On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control".

* Add UCP user password limitation

* Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support"

* Adding emphasis on Static IP requirement (#7276)

* Adding emphasis on Static IP requirement

We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status.    We should make it clear that static IP is absolutely required.  
```***-ucp-0-dw original="10.15.89.6" updated="10.15.89.7" 
***-ucp-1-dw original="10.15.89.5" updated="10.15.89.6" 
***-ucp-2-dw original="10.15.89.7" updated="10.15.89.5" ```

* Link to prod requirement of static IP addresses

* Adding warning about layer7 config (#8617)

* Adding warning about layer7 config

Adding warning about layer7 config not being included in the backup

* Text edit

* Sync published with master (#8673)

* Revert "Netlify redirects interlock (#8595)"

This reverts commit a7793edc74.

* UCP Install on Azure Patch (#8522)

* Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :)

* Correct Pod-CIDR Warning

* Content cleanup

Please check that I haven't changed the meaning of the updated prerequisites.

* Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng.

* Incorporated Steven F's feedback and Issue 8551

* Provide a warning when setting a small IP Count variable

* Final edits

* Update install-on-azure.md

* Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command

* Removed Orchestrator Tag Pre Req from Azure Docs

* Clarifying need for 0644 permissions

* Improved backup commands (#8597)

* Improved backup commands

DTR image backup command improvements:

1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work.
2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename.

DTR Metadata backup command improvements:

DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls:

1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 
2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 
3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup.
4. Described these improvements for the user.

Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas.

* Technical and editorial review

* More edits

* line 8; remove unnecessary a (#8672)

* line 8; remove unnecessary a

* Minor edit

* Updated the UCP Logging page to include UCP 3.1 screenshots (#8646)

* Added examples (#8599)

* Added examples

Added examples with more detail and automation to help customers backup DTR without creating support tickets.

* Linked to explanation of example command

@omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. 

We can re-add in a follow-up PR, if you think that example is crucial to this page.

* Remove deadlink in the Interlock ToC (#8668)

* Found a deadlink in the Interlock ToC

* Added Redirect
2019-04-19 02:47:36 +02:00
.github
_data Remove deadlink in the Interlock ToC (#8668) 2019-04-19 02:12:28 +02:00
_includes Add missing bold markup 2019-03-22 21:52:40 -04:00
_layouts Rename / remove edge-related variables 2019-01-14 22:44:58 +01:00
_samples Rename Docker Store and Docker Cloud - WIP 2018-10-04 19:41:32 -04:00
_scripts Move fetching "library samples" to a separate stage 2019-03-07 16:27:20 +01:00
_scss Merge pull request #7492 from artywhite/fix-navsidebar-hover-cursor-pointer 2019-01-04 16:08:02 -08:00
compose compose-file: remove reference to custom init path (#8628) 2019-04-12 19:04:12 +02:00
config Typo on logging driver name 2019-04-04 16:08:43 -04:00
css
datacenter Add the 'Install on Azure' page back to the TOC for UCP 3.0 (#8623) 2019-04-10 11:59:25 -04:00
develop Fix typo 2019-04-01 23:56:55 -07:00
docker-for-aws Revert "Revert "Merge branch 'master' of github.com:docker/docker.github.io"" 2019-03-08 10:53:00 -08:00
docker-for-azure Revert "Revert "Merge branch 'master' of github.com:docker/docker.github.io"" 2019-03-08 10:53:00 -08:00
docker-for-mac replacing TODO with proper link 2019-03-12 00:00:32 -04:00
docker-for-windows Fix a broken link 2019-04-15 17:19:04 +01:00
docker-hub Revert "Update index.md" 2019-03-21 10:31:10 -07:00
docker-id Re-write Orgs & Webhooks docs 2018-11-22 16:16:13 -05:00
edge Rename / remove edge-related variables 2019-01-14 22:44:58 +01:00
ee Remove deadlink in the Interlock ToC (#8668) 2019-04-19 02:12:28 +02:00
engine Patch release notes 04 2019 (#8633) 2019-04-11 10:44:59 -04:00
favicons
fonts
get-started typo fix 2019-04-02 20:42:20 +02:00
hackathon
images Added 404 from home page, fixed text. 2019-01-08 16:13:49 -05:00
install Add relative links 2019-03-01 08:29:15 -05:00
js Merge branch 'master' into name-change-for-Docker-Desktop 2019-01-14 11:14:48 -05:00
kitematic Update userguide.md 2019-01-11 13:57:49 -05:00
machine Revert "Update overview.md" 2019-03-21 23:26:47 +05:30
network Update overlay.md 2019-02-12 11:19:24 -07:00
notary Rename official repos to official images 2018-11-21 15:19:50 -05:00
opensource
reference Added examples (#8599) 2019-04-19 02:11:56 +02:00
registry Update help.md 2019-02-15 14:05:58 -08:00
release-notes Minor edits 2019-03-29 14:00:35 -07:00
samples Update index.md [Sample applications table] 2019-03-22 00:01:26 +05:30
storage Remove extra which 2019-04-14 21:33:44 +05:30
swarm Move externally hosted images to the repo, and update image links 2019-02-05 16:14:01 -08:00
tests Spelling revision 2018-09-23 21:43:11 +02:00
toolbox Remove link to latest download 2019-03-14 15:19:24 -07:00
.NOT_EDITED_HERE.yaml
.dockerignore
.eslintignore
.gitignore
.gitmodules Update .gitmodules 2018-11-16 09:27:08 +08:00
.nojekyll
.ruby-version
404.html
404.md Update 404.md 2019-01-08 13:21:26 -08:00
CONTRIBUTING.md Remove link to non-existent style guide 2018-11-12 15:14:22 +02:00
Dockerfile Move fetching "library samples" to a separate stage 2019-03-07 16:27:20 +01:00
Dockerfile.archive
Gemfile
Jenkinsfile make jenkinsfile serve private and public docs 2019-04-03 16:01:55 -05:00
LICENSE
README.md Revert "Revert "Merge branch 'master' of github.com:docker/docker.github.io"" 2019-03-08 10:53:00 -08:00
_config.yml Use site parameter to use latest compose file versions in examples (#8630) 2019-04-12 15:25:47 +02:00
_config_authoring.yml Use site parameter to use latest compose file versions in examples (#8630) 2019-04-12 15:25:47 +02:00
components.md
docker-compose.yml
docker-for-ibm-cloud.md Add redirect from v17.12 version of page since the product has been EOL'ed last year 2019-02-07 09:52:35 -08:00
docsarchive.md
favicon.ico
glossary.md
googlecbe7fee896be512c.html
index.html
index.md Update index.md 2019-01-11 13:05:08 -05:00
reference.md Rename Docker Store and Docker Cloud - WIP 2018-10-04 19:41:32 -04:00
robots.txt Updating config, docsarchive, robots.txt files 2018-09-11 09:56:13 -07:00
search.md
test.md Added PowerShell sample 2019-02-06 17:45:17 -05:00
thank-you-subscribing-docker-weekly.md Revert "Adding period to confirmation message" 2018-08-29 18:38:21 -07:00

README.md

Docs @ Docker

Welcome to the repo for our documentation. This is the source for https://docs.docker.com/.

Feel free to send us pull requests and file issues. Our docs are completely open source and we deeply appreciate contributions from our community!

Providing feedback

We really want your feedback, and we've made it easy. You can edit a page or request changes in the right column of every page on docs.docker.com. You can also rate each page by clicking a link at the footer.

Only file issues about the documentation in this repository. One way to think about this is that you should file a bug here if your issue is that you don't see something that should be in the docs, or you see something incorrect or confusing in the docs.

  • If your problem is a general question about how to configure or use Docker, ask in https://forums.docker.com instead.

  • If you have an idea for a new feature or behavior change in a specific aspect of Docker, or have found a bug in part of Docker, file that issue in the project's code repository.

Contributing

We value your documentation contributions, and we want to make it as easy as possible to work in this repository. One of the first things to decide is which branch to base your work on. If you get confused, just ask and we will help. If a reviewer realizes you have based your work on the wrong branch, we'll let you know so that you can rebase it.

Note: To contribute code to Docker projects, see the Contribution guidelines.

Files not edited here

Files and directories listed in the path: keys in .NOT_EDITED_HERE.yaml are maintained in other repositories and should not be edited in this one. Pull requests against these files will be rejected. Make your edits to the files in the repository and path in the source: key in the YAML file.

Overall doc improvements

Most commits will be made against the master branch. This include:

  • Conceptual and task-based information not specific to new features
  • Restructuring / rewriting
  • Doc bug fixing
  • Typos and grammar errors

One quirk of this project is that the master branch is where the live docs are published from, so upcoming features can't be documented there. See Specific new features for a project for how to document upcoming features. These feature branches will be periodically merged with master, so don't worry about fixing typos and documentation bugs there.

Do you enjoy creating graphics? Good graphics are key to great documentation, and we especially value contributions in this area.

Specific new features for a project

Our docs cover many projects which release at different times. If, and only if, your pull request relates to a currently unreleased feature of a project, base your work on that project's vnext branch. These branches were created by cloning master and then importing a project's master branch's docs into it (at the time of the migration), in a way that preserved the commit history. When a project has a release, its vnext branch will be merged into master and your work will be visible on https://docs.docker.com/.

The following vnext branches currently exist:

Per-PR staging on GitHub

For every PR against master and all the long-lived branches, a staged version of the site is built using Netlify. If the site builds, you will see deploy/netlify — Deploy preview ready. Otherwise, you will see an error. Click Details to review the staged site or the errors that prevented it from building. Review the staged site and amend your commit if necessary. Reviewers will also check the staged site before merging the PR, to protect the integrity of https://docs.docker.com/.

Staging the docs

You have three options:

  1. On your local machine, clone this repo and run our staging container:

    git clone --recursive https://github.com/docker/docker.github.io.git
    cd docker.github.io
    docker-compose up
    

    If you haven't got Docker Compose installed, follow these installation instructions.

    The container runs in the background and incrementally rebuilds the site each time a file changes. You can keep your browser open to http://localhost:4000/ and refresh to see your changes. The container runs in the foreground, but you can use CTRL+C to get the command prompt back. To stop the container, issue the following command:

    docker-compose down
    
  2. Install Jekyll and GitHub Pages on your local machine.

    a. Clone this repo by running:

    git clone --recursive https://github.com/docker/docker.github.io.git
    

    b. Install Ruby 2.3 or later as described in Installing Ruby.

    c. Install Bundler:

    gem install bundler
    

    d. If you use Ubuntu, install packages required for the Nokogiri HTML parser:

    sudo apt-get install ruby-dev zlib1g-dev liblzma-dev
    

    e. Install Jekyll and other required dependencies:

    bundle install
    

    Note: You may need to install some packages manually.

    f. Change the directory to docker.github.io.

    g. Use the jekyll serve command to continuously build the HTML output.

    The jekyll serve process runs in the foreground, and starts a web server running on http://localhost:4000/ by default. To stop it, use CTRL+C. You can continue working in a second terminal and Jekyll will rebuild the website incrementally. Refresh the browser to preview your changes.

  3. Build and run a Docker image for your working branch.

    $ docker build -t docker build -t docs/docker.github.io:<branch_name> .
    $ docker run --rm -it -p 4000:4000 docs/docker.github.io:<branch_name>
    

    After the docker run command, copy the URL provided in the container build output in a browser, http://0.0.0.0:4000, and verify your changes.

Read these docs offline

To read the docs offline, you can use either a standalone container or a swarm service. To see all available tags, go to Docker Hub.

The following examples use the latest tag:

  • Run a single container:

    docker run  -it -p 4000:4000 docs/docker.github.io:latest
    
  • Run a swarm service:

    docker service create -p 4000:4000 --name localdocs --replicas 1 docs/docker.github.io:latest
    

    This example uses only a single replica, but you could run as many replicas as you'd like.

Either way, you can now access the docs at port 4000 on your Docker host.

Important files

  • /_data/toc.yaml defines the left-hand navigation for the docs
  • /js/menu.js defines most of the docs-specific JS such as TOC generation and menu syncing
  • /css/style.scss defines the docs-specific style rules
  • /_layouts/docs.html is the HTML template file, which defines the header and footer, and includes all the JS/CSS that serves the docs content

Relative linking for GitHub viewing

Feel free to link to ../foo.md so that the docs are readable in GitHub, but keep in mind that Jekyll templating notation {% such as this %} will render in raw text and not be processed. In general it's best to assume the docs are being read directly on https://docs.docker.com/.

Testing changes and practical guidance

If you want to test a style change, or if you want to see how to achieve a particular outcome with Markdown, Bootstrap, JQuery, or something else, have a look at test.md (which renders in the site at /test/).

Per-page front-matter

The front-matter of a given page is in a section at the top of the Markdown file that starts and ends with three hyphens. It includes YAML content. The following keys are supported. The title, description, and keywords are required.

Key Required Description
title yes The page title. This is added to the HTML output as a <h1> level header.
description yes A sentence that describes the page contents. This is added to the HTML metadata.
keywords yes A comma-separated list of keywords. These are added to the HTML metadata.
redirect_from no A YAML list of pages which should redirect to THIS page. At build time, each page listed here is created as a HTML stub containing a 302 redirect to this page.
notoc no Either true or false. If true, no in-page TOC is generated for the HTML output of this page. Defaults to false. Appropriate for some landing pages that have no in-page headings.
toc_min no Ignored if notoc is set to true. The minimum heading level included in the in-page TOC. Defaults to 2, to show <h2> headings as the minimum.
toc_max no Ignored if notoc is set to false. The maximum heading level included in the in-page TOC. Defaults to 3, to show <h3> headings. Set to the same as toc_min to only show toc_min level of headings.
tree no Either true or false. Set to false to disable the left-hand site-wide navigation for this page. Appropriate for some pages like the search page or the 404 page.
no_ratings no Either true or false. Set to true to disable the page-ratings applet for this page. Defaults to false.

The following is an example of valid (but contrived) page metadata. The order of the metadata elements in the front-matter is not important.

---
description: Instructions for installing Docker on Ubuntu
keywords: requirements, apt, installation, ubuntu, install, uninstall, upgrade, update
redirect_from:
- /engine/installation/ubuntulinux/
- /installation/ubuntulinux/
- /engine/installation/linux/ubuntulinux/
title: Get Docker for Ubuntu
toc_min: 1
toc_max: 6
tree: false
no_ratings: true
---

Creating tabs

The use of tabs, as on pages like https://docs.docker.com/engine/api/, requires the use of HTML. The tabs use Bootstrap CSS/JS, so refer to those docs for more advanced usage. For a basic horizontal tab set, copy/paste starting from this code and implement from there. Keep an eye on those href="#id" and id="id" references as you rename, add, and remove tabs.

<ul class="nav nav-tabs">
  <li class="active"><a data-toggle="tab" data-target="#tab1">TAB 1 HEADER</a></li>
  <li><a data-toggle="tab" data-target="#tab2">TAB 2 HEADER</a></li>
</ul>
<div class="tab-content">
  <div id="tab1" class="tab-pane fade in active">TAB 1 CONTENT</div>
  <div id="tab2" class="tab-pane fade">TAB 2 CONTENT</div>
</div>

For more info and a few more permutations, see test.md.

Running in-page Javascript

If you need to run custom Javascript within a page, and it depends upon JQuery or Bootstrap, make sure the <script> tags are at the very end of the page, after all the content. Otherwise the script may try to run before JQuery and Bootstrap JS are loaded.

Note: In general, this is a bad idea.

Images

Don't forget to remove images that are no longer used. Keep the images sorted in the local images/ directory, with names that naturally group related images together in alphabetical order. For instance prefer settings-file-share.png and settings-proxies.png to file-share-settings.png and proxies-settings.png. You may also use numbers, especially in the case of a sequence, e.g., run-only-the-images-you-trust-1.svg run-only-the-images-you-trust-2.png run-only-the-images-you-trust-3.png.

When applicable, capture windows rather than rectangular regions. This eliminates unpleasant background and saves the editors the need to crop.

On Mac, capture windows without shadows. To this end, once you pressed Command-Shift-4, press Option while clicking on the window. To disable shadows once for all, run:

$ defaults write com.apple.screencapture disable-shadow -bool TRUE
$ killall SystemUIServer  # restart it.

You can restore shadows later with -bool FALSE.

In order to keep the Git repository light, please compress the images (losslessly). On Mac you may use (ImageOptim)[https://imageoptim.com] for instance. Be sure to compress the images before adding them to the repository, doing it afterwards actually worsens the impact on the Git repo (but still optimizes the bandwidth during browsing).

Beta content disclaimer

> BETA DISCLAIMER
>
> This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice.

Accessing unsupported archived documentation

Supported documentation includes the current version plus the previous five versions.

If you are using a version of the documentation that is no longer supported, which means that the version number is not listed in the site dropdown list, you can still access that documentation in the following ways:

 docker run  -it -p 4000:4000 docs/docker.github.io:v1.9

Building archives and the live published docs

All the images described below are automatically built using Docker Hub. To build the site manually, from scratch, including all utility and archive images, see the README in the publish-tools branch.

  • Some utility images are built from Dockerfiles in the publish-tools branch. See its README for details.
  • Each archive branch automatically builds an image tagged docs/docker.github.io:v<VERSION> when a change is merged into that branch.
  • The master branch has a Dockerfile which uses the static HTML from each archive image, in combination with the Markdown files in master and some upstream resources which are fetched at build-time, to create the full site at https://docs.docker.com/. All of the long-running branches, such as vnext-engine, vnext-compose, etc, use the same logic.

Creating a new archive

When a new Docker CE Stable version is released, the previous state of master is archived into a version-specific branch like v17.09, by doing the following:

  1. Create branch based off the commit hash before the new version was released.

    $ git checkout <HASH>
    $ git checkout -b v17.09
    
  2. Run the _scripts/fetch-upstream-resources.sh script. This puts static copies of the files in place that the master build typically fetches each build.

    $ _scripts/fetch-upstream/resources.sh
    
  3. Overwrite the Dockerfile with the Dockerfile.archive (use cp rather than mv so you don't inadvertently remove either file). Edit the resulting Dockerfile and set the VER build argument to the appropriate value, like v17.09.

    $ mv Dockerfile.archive Dockerfile
    $ vi Dockerfile
    
      < edit the variable and save >
    
  4. Do git status and add all changes, being careful not to add anything extra by accident. Commit your work.

    $ git status
    $ git add <filename>
    $ git add <filename> (etc etc etc)
    $ git commit -m "Creating archive for 17.09 docs"
    
  5. Make sure the archive builds.

    $ docker build -t docker build -t docs/docker.github.io:v17.09 .
    $ docker run --rm -it -p 4000:4000 docs/docker.github.io:v17.09
    

    After the docker run command, browse to http://localhost:4000/ and verify that the archive is self-browseable.

  6. Push the branch to the upstream repository. Do not create a pull request as there is no reference branch to compare against.

    $ git push upstream v17.09
    

Code and documentation copyright 2017 Docker, inc, released under the Apache 2.0 license.