| ... | ... |
@@ -55,6 +55,9 @@ docs-shell: docs-build |
| 55 | 55 |
docs-release: docs-build |
| 56 | 56 |
$(DOCKER_RUN_DOCS) -e OPTIONS -e BUILD_ROOT "$(DOCKER_DOCS_IMAGE)" ./release.sh |
| 57 | 57 |
|
| 58 |
+docs-test: docs-build |
|
| 59 |
+ $(DOCKER_RUN_DOCS) "$(DOCKER_DOCS_IMAGE)" ./test.sh |
|
| 60 |
+ |
|
| 58 | 61 |
test: build |
| 59 | 62 |
$(DOCKER_RUN_DOCKER) hack/make.sh binary cross test-unit test-integration test-integration-cli |
| 60 | 63 |
|
| ... | ... |
@@ -33,6 +33,11 @@ In the root of the `docker` source directory: |
| 33 | 33 |
If you have any issues you need to debug, you can use `make docs-shell` and then |
| 34 | 34 |
run `mkdocs serve` |
| 35 | 35 |
|
| 36 |
+## Testing the links |
|
| 37 |
+ |
|
| 38 |
+You can use `make docs-test` to generate a report of missing links that are referenced in |
|
| 39 |
+the documentation - there should be none. |
|
| 40 |
+ |
|
| 36 | 41 |
## Adding a new document |
| 37 | 42 |
|
| 38 | 43 |
New document (`.md`) files are added to the documentation builds by adding them |
| 39 | 44 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,79 @@ |
| 0 |
+#!/usr/bin/env python |
|
| 1 |
+ |
|
| 2 |
+""" I honestly don't even know how the hell this works, just use it. """ |
|
| 3 |
+__author__ = "Scott Stamp <scott@hypermine.com>" |
|
| 4 |
+ |
|
| 5 |
+from HTMLParser import HTMLParser |
|
| 6 |
+from urlparse import urljoin |
|
| 7 |
+from sys import setrecursionlimit |
|
| 8 |
+import re |
|
| 9 |
+import requests |
|
| 10 |
+ |
|
| 11 |
+setrecursionlimit(10000) |
|
| 12 |
+root = 'http://localhost:8000' |
|
| 13 |
+ |
|
| 14 |
+ |
|
| 15 |
+class DataHolder: |
|
| 16 |
+ |
|
| 17 |
+ def __init__(self, value=None, attr_name='value'): |
|
| 18 |
+ self._attr_name = attr_name |
|
| 19 |
+ self.set(value) |
|
| 20 |
+ |
|
| 21 |
+ def __call__(self, value): |
|
| 22 |
+ return self.set(value) |
|
| 23 |
+ |
|
| 24 |
+ def set(self, value): |
|
| 25 |
+ setattr(self, self._attr_name, value) |
|
| 26 |
+ return value |
|
| 27 |
+ |
|
| 28 |
+ def get(self): |
|
| 29 |
+ return getattr(self, self._attr_name) |
|
| 30 |
+ |
|
| 31 |
+ |
|
| 32 |
+class Parser(HTMLParser): |
|
| 33 |
+ global root |
|
| 34 |
+ |
|
| 35 |
+ ids = set() |
|
| 36 |
+ crawled = set() |
|
| 37 |
+ anchors = {}
|
|
| 38 |
+ pages = set() |
|
| 39 |
+ save_match = DataHolder(attr_name='match') |
|
| 40 |
+ |
|
| 41 |
+ def __init__(self, origin): |
|
| 42 |
+ self.origin = origin |
|
| 43 |
+ HTMLParser.__init__(self) |
|
| 44 |
+ |
|
| 45 |
+ def handle_starttag(self, tag, attrs): |
|
| 46 |
+ attrs = dict(attrs) |
|
| 47 |
+ if 'href' in attrs: |
|
| 48 |
+ href = attrs['href'] |
|
| 49 |
+ |
|
| 50 |
+ if re.match('^{0}|\/|\#[\S]{{1,}}'.format(root), href):
|
|
| 51 |
+ if self.save_match(re.search('.*\#(.*?)$', href)):
|
|
| 52 |
+ if self.origin not in self.anchors: |
|
| 53 |
+ self.anchors[self.origin] = set() |
|
| 54 |
+ self.anchors[self.origin].add( |
|
| 55 |
+ self.save_match.match.groups(1)[0]) |
|
| 56 |
+ |
|
| 57 |
+ url = urljoin(root, href) |
|
| 58 |
+ |
|
| 59 |
+ if url not in self.crawled and not re.match('^\#', href):
|
|
| 60 |
+ self.crawled.add(url) |
|
| 61 |
+ Parser(url).feed(requests.get(url).content) |
|
| 62 |
+ |
|
| 63 |
+ if 'id' in attrs: |
|
| 64 |
+ self.ids.add(attrs['id']) |
|
| 65 |
+ # explicit <a name=""></a> references |
|
| 66 |
+ if 'name' in attrs: |
|
| 67 |
+ self.ids.add(attrs['name']) |
|
| 68 |
+ |
|
| 69 |
+ |
|
| 70 |
+r = requests.get(root) |
|
| 71 |
+parser = Parser(root) |
|
| 72 |
+parser.feed(r.content) |
|
| 73 |
+for anchor in sorted(parser.anchors): |
|
| 74 |
+ if not re.match('.*/\#.*', anchor):
|
|
| 75 |
+ for anchor_name in parser.anchors[anchor]: |
|
| 76 |
+ if anchor_name not in parser.ids: |
|
| 77 |
+ print 'Missing - ({0}): #{1}'.format(
|
|
| 78 |
+ anchor.replace(root, ''), anchor_name) |
| ... | ... |
@@ -5,7 +5,7 @@ page_keywords: Examples, Usage, base image, docker, documentation, examples |
| 5 | 5 |
# Create a Base Image |
| 6 | 6 |
|
| 7 | 7 |
So you want to create your own [*Base Image*]( |
| 8 |
-/terms/image/#base-image-def)? Great! |
|
| 8 |
+/terms/image/#base-image)? Great! |
|
| 9 | 9 |
|
| 10 | 10 |
The specific process will depend heavily on the Linux distribution you |
| 11 | 11 |
want to package. We have some examples below, and you are encouraged to |
| ... | ... |
@@ -17,7 +17,7 @@ If you get `docker: command not found` or something like |
| 17 | 17 |
incomplete Docker installation or insufficient privileges to access |
| 18 | 18 |
Docker on your machine. |
| 19 | 19 |
|
| 20 |
-Please refer to [*Installation*](/installation/#installation-list) |
|
| 20 |
+Please refer to [*Installation*](/installation) |
|
| 21 | 21 |
for installation instructions. |
| 22 | 22 |
|
| 23 | 23 |
## Download a pre-built image |
| ... | ... |
@@ -26,7 +26,7 @@ for installation instructions. |
| 26 | 26 |
$ sudo docker pull ubuntu |
| 27 | 27 |
|
| 28 | 28 |
This will find the `ubuntu` image by name on |
| 29 |
-[*Docker Hub*](/userguide/dockerrepos/#find-public-images-on-docker-hub) |
|
| 29 |
+[*Docker Hub*](/userguide/dockerrepos/#searching-for-images) |
|
| 30 | 30 |
and download it from [Docker Hub](https://hub.docker.com) to a local |
| 31 | 31 |
image cache. |
| 32 | 32 |
|
| ... | ... |
@@ -174,6 +174,6 @@ will be stored (as a diff). See which images you already have using the |
| 174 | 174 |
You now have an image state from which you can create new instances. |
| 175 | 175 |
|
| 176 | 176 |
Read more about [*Share Images via |
| 177 |
-Repositories*](/userguide/dockerrepos/#working-with-the-repository) or |
|
| 177 |
+Repositories*](/userguide/dockerrepos) or |
|
| 178 | 178 |
continue to the complete [*Command |
| 179 |
-Line*](/reference/commandline/cli/#cli) |
|
| 179 |
+Line*](/reference/commandline/cli) |
| ... | ... |
@@ -7,7 +7,7 @@ page_keywords: chef, installation, usage, docker, documentation |
| 7 | 7 |
> **Note**: |
| 8 | 8 |
> Please note this is a community contributed installation path. The only |
| 9 | 9 |
> `official` installation is using the |
| 10 |
-> [*Ubuntu*](/installation/ubuntulinux/#ubuntu-linux) installation |
|
| 10 |
+> [*Ubuntu*](/installation/ubuntulinux) installation |
|
| 11 | 11 |
> path. This version may sometimes be out of date. |
| 12 | 12 |
|
| 13 | 13 |
## Requirements |
| ... | ... |
@@ -6,7 +6,7 @@ page_keywords: puppet, installation, usage, docker, documentation |
| 6 | 6 |
|
| 7 | 7 |
> *Note:* Please note this is a community contributed installation path. The |
| 8 | 8 |
> only `official` installation is using the |
| 9 |
-> [*Ubuntu*](/installation/ubuntulinux/#ubuntu-linux) installation |
|
| 9 |
+> [*Ubuntu*](/installation/ubuntulinux) installation |
|
| 10 | 10 |
> path. This version may sometimes be out of date. |
| 11 | 11 |
|
| 12 | 12 |
## Requirements |
| ... | ... |
@@ -33,7 +33,7 @@ of another container. Of course, if the host system is setup |
| 33 | 33 |
accordingly, containers can interact with each other through their |
| 34 | 34 |
respective network interfaces — just like they can interact with |
| 35 | 35 |
external hosts. When you specify public ports for your containers or use |
| 36 |
-[*links*](/userguide/dockerlinks/#working-with-links-names) |
|
| 36 |
+[*links*](/userguide/dockerlinks) |
|
| 37 | 37 |
then IP traffic is allowed between containers. They can ping each other, |
| 38 | 38 |
send/receive UDP packets, and establish TCP connections, but that can be |
| 39 | 39 |
restricted if necessary. From a network architecture point of view, all |
| ... | ... |
@@ -6,7 +6,7 @@ page_keywords: docker, supervisor, process management |
| 6 | 6 |
|
| 7 | 7 |
> **Note**: |
| 8 | 8 |
> - **If you don't like sudo** then see [*Giving non-root |
| 9 |
-> access*](/installation/binaries/#dockergroup) |
|
| 9 |
+> access*](/installation/binaries/#giving-non-root-access) |
|
| 10 | 10 |
|
| 11 | 11 |
Traditionally a Docker container runs a single process when it is |
| 12 | 12 |
launched, for example an Apache daemon or a SSH server daemon. Often |
| ... | ... |
@@ -6,7 +6,7 @@ page_keywords: docker, example, package installation, networking, debian, ubuntu |
| 6 | 6 |
|
| 7 | 7 |
> **Note**: |
| 8 | 8 |
> - **If you don't like sudo** then see [*Giving non-root |
| 9 |
-> access*](/installation/binaries/#dockergroup). |
|
| 9 |
+> access*](/installation/binaries/#giving-non-root-access). |
|
| 10 | 10 |
> - **If you're using OS X or docker via TCP** then you shouldn't use |
| 11 | 11 |
> sudo. |
| 12 | 12 |
|
| ... | ... |
@@ -6,7 +6,7 @@ page_keywords: docker, example, package installation, networking, couchdb, data |
| 6 | 6 |
|
| 7 | 7 |
> **Note**: |
| 8 | 8 |
> - **If you don't like sudo** then see [*Giving non-root |
| 9 |
-> access*](/installation/binaries/#dockergroup) |
|
| 9 |
+> access*](/installation/binaries/#giving-non-root-access) |
|
| 10 | 10 |
|
| 11 | 11 |
Here's an example of using data volumes to share the same data between |
| 12 | 12 |
two CouchDB containers. This could be used for hot upgrades, testing |
| ... | ... |
@@ -6,7 +6,7 @@ page_keywords: docker, example, package installation, node, centos |
| 6 | 6 |
|
| 7 | 7 |
> **Note**: |
| 8 | 8 |
> - **If you don't like sudo** then see [*Giving non-root |
| 9 |
-> access*](/installation/binaries/#dockergroup) |
|
| 9 |
+> access*](/installation/binaries/#giving-non-root-access) |
|
| 10 | 10 |
|
| 11 | 11 |
The goal of this example is to show you how you can build your own |
| 12 | 12 |
Docker images from a parent image using a `Dockerfile` |
| ... | ... |
@@ -6,7 +6,7 @@ page_keywords: docker, example, package installation, postgresql |
| 6 | 6 |
|
| 7 | 7 |
> **Note**: |
| 8 | 8 |
> - **If you don't like sudo** then see [*Giving non-root |
| 9 |
-> access*](/installation/binaries/#dockergroup) |
|
| 9 |
+> access*](/installation/binaries/#giving-non-root-access) |
|
| 10 | 10 |
|
| 11 | 11 |
## Installing PostgreSQL on Docker |
| 12 | 12 |
|
| ... | ... |
@@ -42,7 +42,7 @@ |
| 42 | 42 |
[`POST /containers/(id)/stop`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-stop) ** |
| 43 | 43 |
[`GET /containers/(id)/top`](../reference/api/docker_remote_api_v1.9/#get--containers-(id)-top) ** |
| 44 | 44 |
[`POST /containers/(id)/wait`](../reference/api/docker_remote_api_v1.9/#post--containers-(id)-wait) ** |
| 45 |
- [`POST /containers/create`](../reference/api/docker_remote_api_v1.9/#post--containers-create) ** |
|
| 45 |
+ [`POST /containers/create`](/reference/api/docker_remote_api_v1.9/#create-a-container) ** |
|
| 46 | 46 |
[`GET /containers/json`](../reference/api/docker_remote_api_v1.9/#get--containers-json) ** |
| 47 | 47 |
[`POST /containers/(id)/resize`](../reference/api/docker_remote_api_v1.9/#get--containers-resize) ** |
| 48 | 48 |
 |
| ... | ... |
@@ -40,10 +40,10 @@ over to the [User Guide](/userguide). |
| 40 | 40 |
## Standard Ubuntu Installation |
| 41 | 41 |
|
| 42 | 42 |
If you want a more hands-on installation, then you can follow the |
| 43 |
-[*Ubuntu*](../ubuntulinux/#ubuntu-linux) instructions installing Docker |
|
| 44 |
-on any EC2 instance running Ubuntu. Just follow Step 1 from [*Amazon |
|
| 45 |
-QuickStart*](#amazon-quickstart) to pick an image (or use one of your |
|
| 43 |
+[*Ubuntu*](/installation/ubuntulinux) instructions installing Docker |
|
| 44 |
+on any EC2 instance running Ubuntu. Just follow Step 1 from the Amazon |
|
| 45 |
+QuickStart above to pick an image (or use one of your |
|
| 46 | 46 |
own) and skip the step with the *User Data*. Then continue with the |
| 47 |
-[*Ubuntu*](../ubuntulinux/#ubuntu-linux) instructions. |
|
| 47 |
+[*Ubuntu*](/installation/ubuntulinux) instructions. |
|
| 48 | 48 |
|
| 49 | 49 |
Continue with the [User Guide](/userguide/). |
| ... | ... |
@@ -77,7 +77,7 @@ need to add `sudo` to all the client commands. |
| 77 | 77 |
> **Warning**: |
| 78 | 78 |
> The *docker* group (or the group specified with `-G`) is root-equivalent; |
| 79 | 79 |
> see [*Docker Daemon Attack Surface*]( |
| 80 |
-> /articles/security/#dockersecurity-daemon) details. |
|
| 80 |
+> /articles/security/#docker-daemon-attack-surface) details. |
|
| 81 | 81 |
|
| 82 | 82 |
## Upgrades |
| 83 | 83 |
|
| ... | ... |
@@ -6,8 +6,8 @@ page_keywords: Docker, Docker documentation, installation, debian |
| 6 | 6 |
|
| 7 | 7 |
Docker is supported on the following versions of Debian: |
| 8 | 8 |
|
| 9 |
- - [*Debian 8.0 Jessie (64-bit)*](#debian-jessie-8-64-bit) |
|
| 10 |
- - [*Debian 7.5 Wheezy (64-bit)*](#debian-wheezy-7-64-bit) |
|
| 9 |
+ - [*Debian 8.0 Jessie (64-bit)*](#debian-jessie-80-64-bit) |
|
| 10 |
+ - [*Debian 7.5 Wheezy (64-bit)*](#debian-wheezystable-7x-64-bit) |
|
| 11 | 11 |
|
| 12 | 12 |
## Debian Jessie 8.0 (64-bit) |
| 13 | 13 |
|
| ... | ... |
@@ -81,7 +81,7 @@ use the `-G` flag to specify an alternative group. |
| 81 | 81 |
> **Warning**: |
| 82 | 82 |
> The `docker` group (or the group specified with the `-G` flag) is |
| 83 | 83 |
> `root`-equivalent; see [*Docker Daemon Attack Surface*]( |
| 84 |
-> /articles/security/#dockersecurity-daemon) details. |
|
| 84 |
+> /articles/security/#docker-daemon-attack-surface) details. |
|
| 85 | 85 |
|
| 86 | 86 |
**Example:** |
| 87 | 87 |
|
| ... | ... |
@@ -240,7 +240,7 @@ alternative group. |
| 240 | 240 |
> **Warning**: |
| 241 | 241 |
> The `docker` group (or the group specified with the `-G` flag) is |
| 242 | 242 |
> `root`-equivalent; see [*Docker Daemon Attack Surface*]( |
| 243 |
-> /articles/security/#dockersecurity-daemon) for details. |
|
| 243 |
+> /articles/security/#docker-daemon-attack-surface) for details. |
|
| 244 | 244 |
|
| 245 | 245 |
**Example:** |
| 246 | 246 |
|
| ... | ... |
@@ -366,7 +366,7 @@ output is now generated in the client, using the |
| 366 | 366 |
You can now split stderr from stdout. This is done by |
| 367 | 367 |
prefixing a header to each transmission. See |
| 368 | 368 |
[`POST /containers/(id)/attach`]( |
| 369 |
-/reference/api/docker_remote_api_v1.9/#post--containers-(id)-attach "POST /containers/(id)/attach"). |
|
| 369 |
+/reference/api/docker_remote_api_v1.9/#attach-to-a-container "POST /containers/(id)/attach"). |
|
| 370 | 370 |
The WebSocket attach is unchanged. Note that attach calls on the |
| 371 | 371 |
previous API version didn't change. Stdout and stderr are merged. |
| 372 | 372 |
|
| ... | ... |
@@ -499,7 +499,7 @@ Status Codes: |
| 499 | 499 |
|
| 500 | 500 |
When using the TTY setting is enabled in |
| 501 | 501 |
[`POST /containers/create` |
| 502 |
-](../docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 502 |
+](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 503 | 503 |
the stream is the raw data from the process PTY and client's stdin. |
| 504 | 504 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 505 | 505 |
stdout and stderr. |
| ... | ... |
@@ -998,7 +998,7 @@ Build an image from Dockerfile via stdin |
| 998 | 998 |
The archive must include a file called `Dockerfile` |
| 999 | 999 |
at its root. It may include any number of other files, |
| 1000 | 1000 |
which will be accessible in the build context (See the [*ADD build |
| 1001 |
- command*](/reference/builder/#dockerbuilder)). |
|
| 1001 |
+ command*](/reference/builder/#add)). |
|
| 1002 | 1002 |
|
| 1003 | 1003 |
Query Parameters: |
| 1004 | 1004 |
|
| ... | ... |
@@ -535,7 +535,7 @@ Status Codes: |
| 535 | 535 |
|
| 536 | 536 |
When using the TTY setting is enabled in |
| 537 | 537 |
[`POST /containers/create` |
| 538 |
- ](../docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 538 |
+ ](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 539 | 539 |
the stream is the raw data from the process PTY and client's stdin. |
| 540 | 540 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 541 | 541 |
stdout and stderr. |
| ... | ... |
@@ -583,7 +583,7 @@ Status Codes: |
| 583 | 583 |
|
| 584 | 584 |
When using the TTY setting is enabled in |
| 585 | 585 |
[`POST /containers/create` |
| 586 |
- ](../docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 586 |
+ ](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 587 | 587 |
the stream is the raw data from the process PTY and client's stdin. |
| 588 | 588 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 589 | 589 |
stdout and stderr. |
| ... | ... |
@@ -576,7 +576,7 @@ Status Codes: |
| 576 | 576 |
|
| 577 | 577 |
When using the TTY setting is enabled in |
| 578 | 578 |
[`POST /containers/create` |
| 579 |
- ](../docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 579 |
+ ](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 580 | 580 |
the stream is the raw data from the process PTY and client's stdin. |
| 581 | 581 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 582 | 582 |
stdout and stderr. |
| ... | ... |
@@ -584,7 +584,7 @@ Status Codes: |
| 584 | 584 |
|
| 585 | 585 |
When using the TTY setting is enabled in |
| 586 | 586 |
[`POST /containers/create` |
| 587 |
- ](../docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 587 |
+ ](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 588 | 588 |
the stream is the raw data from the process PTY and client's stdin. |
| 589 | 589 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 590 | 590 |
stdout and stderr. |
| ... | ... |
@@ -724,7 +724,7 @@ Status Codes: |
| 724 | 724 |
|
| 725 | 725 |
When using the TTY setting is enabled in |
| 726 | 726 |
[`POST /containers/create` |
| 727 |
- ](../docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 727 |
+ ](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 728 | 728 |
the stream is the raw data from the process PTY and client's stdin. |
| 729 | 729 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 730 | 730 |
stdout and stderr. |
| ... | ... |
@@ -678,7 +678,7 @@ Status Codes: |
| 678 | 678 |
|
| 679 | 679 |
When using the TTY setting is enabled in |
| 680 | 680 |
[`POST /containers/create` |
| 681 |
- ](../docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 681 |
+ ](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 682 | 682 |
the stream is the raw data from the process PTY and client's stdin. |
| 683 | 683 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 684 | 684 |
stdout and stderr. |
| ... | ... |
@@ -525,7 +525,7 @@ Status Codes: |
| 525 | 525 |
|
| 526 | 526 |
When using the TTY setting is enabled in |
| 527 | 527 |
[`POST /containers/create` |
| 528 |
- ](/api/docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 528 |
+ ](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 529 | 529 |
the stream is the raw data from the process PTY and client's stdin. |
| 530 | 530 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 531 | 531 |
stdout and stderr. |
| ... | ... |
@@ -470,7 +470,7 @@ Status Codes: |
| 470 | 470 |
|
| 471 | 471 |
When using the TTY setting is enabled in |
| 472 | 472 |
[`POST /containers/create` |
| 473 |
- ](/api/docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 473 |
+ ](/reference/api/docker_remote_api_v1.7/#create-a-container), |
|
| 474 | 474 |
the stream is the raw data from the process PTY and client's stdin. |
| 475 | 475 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 476 | 476 |
stdout and stderr. |
| ... | ... |
@@ -518,7 +518,7 @@ Status Codes: |
| 518 | 518 |
|
| 519 | 519 |
When using the TTY setting is enabled in |
| 520 | 520 |
[`POST /containers/create` |
| 521 |
- ](/api/docker_remote_api_v1.9/#post--containers-create "POST /containers/create"), |
|
| 521 |
+ ](/reference/api/docker_remote_api_v1.9/#create-a-container "POST /containers/create"), |
|
| 522 | 522 |
the stream is the raw data from the process PTY and client's stdin. |
| 523 | 523 |
When the TTY is disabled, then the stream is multiplexed to separate |
| 524 | 524 |
stdout and stderr. |
| ... | ... |
@@ -522,7 +522,7 @@ Status Codes: |
| 522 | 522 |
**Stream details**: |
| 523 | 523 |
|
| 524 | 524 |
When using the TTY setting is enabled in |
| 525 |
- [`POST /containers/create`](#post--containers-create), the |
|
| 525 |
+ [`POST /containers/create`](#create-a-container), the |
|
| 526 | 526 |
stream is the raw data from the process PTY and client's stdin. When |
| 527 | 527 |
the TTY is disabled, then the stream is multiplexed to separate |
| 528 | 528 |
stdout and stderr. |
| ... | ... |
@@ -1004,7 +1004,7 @@ Build an image from Dockerfile using a POST body. |
| 1004 | 1004 |
The archive must include a file called `Dockerfile` |
| 1005 | 1005 |
at its root. It may include any number of other files, |
| 1006 | 1006 |
which will be accessible in the build context (See the [*ADD build |
| 1007 |
- command*](/reference/builder/#dockerbuilder)). |
|
| 1007 |
+ command*](/reference/builder/#add)). |
|
| 1008 | 1008 |
|
| 1009 | 1009 |
Query Parameters: |
| 1010 | 1010 |
|
| ... | ... |
@@ -79,7 +79,7 @@ guide](/articles/dockerfile_best-practices/#build-cache) for more information): |
| 79 | 79 |
Successfully built 1a5ffc17324d |
| 80 | 80 |
|
| 81 | 81 |
When you're done with your build, you're ready to look into [*Pushing a |
| 82 |
-repository to its registry*]( /userguide/dockerrepos/#image-push). |
|
| 82 |
+repository to its registry*]( /userguide/dockerrepos/#contributing-to-docker-hub). |
|
| 83 | 83 |
|
| 84 | 84 |
## Format |
| 85 | 85 |
|
| ... | ... |
@@ -93,7 +93,7 @@ be UPPERCASE in order to distinguish them from arguments more easily. |
| 93 | 93 |
|
| 94 | 94 |
Docker runs the instructions in a `Dockerfile` in order. **The |
| 95 | 95 |
first instruction must be \`FROM\`** in order to specify the [*Base |
| 96 |
-Image*](/terms/image/#base-image-def) from which you are building. |
|
| 96 |
+Image*](/terms/image/#base-image) from which you are building. |
|
| 97 | 97 |
|
| 98 | 98 |
Docker will treat lines that *begin* with `#` as a |
| 99 | 99 |
comment. A `#` marker anywhere else in the line will |
| ... | ... |
@@ -186,11 +186,11 @@ Or |
| 186 | 186 |
|
| 187 | 187 |
FROM <image>:<tag> |
| 188 | 188 |
|
| 189 |
-The `FROM` instruction sets the [*Base Image*](/terms/image/#base-image-def) |
|
| 189 |
+The `FROM` instruction sets the [*Base Image*](/terms/image/#base-image) |
|
| 190 | 190 |
for subsequent instructions. As such, a valid `Dockerfile` must have `FROM` as |
| 191 | 191 |
its first instruction. The image can be any valid image – it is especially easy |
| 192 | 192 |
to start by **pulling an image** from the [*Public Repositories*]( |
| 193 |
-/userguide/dockerrepos/#using-public-repositories). |
|
| 193 |
+/userguide/dockerrepos). |
|
| 194 | 194 |
|
| 195 | 195 |
`FROM` must be the first non-comment instruction in the `Dockerfile`. |
| 196 | 196 |
|
| ... | ... |
@@ -763,7 +763,7 @@ and mark it as holding externally mounted volumes from native host or other |
| 763 | 763 |
containers. The value can be a JSON array, `VOLUME ["/var/log/"]`, or a plain |
| 764 | 764 |
string with multiple arguments, such as `VOLUME /var/log` or `VOLUME /var/log |
| 765 | 765 |
/var/db`. For more information/examples and mounting instructions via the |
| 766 |
-Docker client, refer to [*Share Directories via Volumes*](/userguide/dockervolumes/#volume-def) |
|
| 766 |
+Docker client, refer to [*Share Directories via Volumes*](/userguide/dockervolumes/#volume) |
|
| 767 | 767 |
documentation. |
| 768 | 768 |
|
| 769 | 769 |
> **Note**: |
| ... | ... |
@@ -459,7 +459,7 @@ Use this command to build Docker images from a Dockerfile and a |
| 459 | 459 |
|
| 460 | 460 |
The files at `PATH` or `URL` are called the "context" of the build. The |
| 461 | 461 |
build process may refer to any of the files in the context, for example |
| 462 |
-when using an [*ADD*](/reference/builder/#dockerfile-add) instruction. |
|
| 462 |
+when using an [*ADD*](/reference/builder/#add) instruction. |
|
| 463 | 463 |
When a single Dockerfile is given as `URL` or is piped through `STDIN` |
| 464 | 464 |
(`docker build - < Dockerfile`), then no context is set. |
| 465 | 465 |
|
| ... | ... |
@@ -539,7 +539,7 @@ machine and that no parsing of the Dockerfile |
| 539 | 539 |
happens at the client side (where you're running |
| 540 | 540 |
`docker build`). That means that *all* the files at |
| 541 | 541 |
`PATH` get sent, not just the ones listed to |
| 542 |
-[*ADD*](/reference/builder/#dockerfile-add) in the Dockerfile. |
|
| 542 |
+[*ADD*](/reference/builder/#add) in the Dockerfile. |
|
| 543 | 543 |
|
| 544 | 544 |
The transfer of context from the local machine to the Docker daemon is |
| 545 | 545 |
what the `docker` client means when you see the |
| ... | ... |
@@ -1817,7 +1817,7 @@ Search [Docker Hub](https://hub.docker.com) for images |
| 1817 | 1817 |
-s, --stars=0 Only displays with at least x stars |
| 1818 | 1818 |
|
| 1819 | 1819 |
See [*Find Public Images on Docker Hub*]( |
| 1820 |
-/userguide/dockerrepos/#find-public-images-on-docker-hub) for |
|
| 1820 |
+/userguide/dockerrepos/#searching-for-images) for |
|
| 1821 | 1821 |
more details on finding shared images from the command line. |
| 1822 | 1822 |
|
| 1823 | 1823 |
## start |
| ... | ... |
@@ -1853,7 +1853,7 @@ grace period, `SIGKILL`. |
| 1853 | 1853 |
|
| 1854 | 1854 |
You can group your images together using names and tags, and then upload |
| 1855 | 1855 |
them to [*Share Images via Repositories*]( |
| 1856 |
-/userguide/dockerrepos/#working-with-the-repository). |
|
| 1856 |
+/userguide/dockerrepos/#contributing-to-docker-hub). |
|
| 1857 | 1857 |
|
| 1858 | 1858 |
## top |
| 1859 | 1859 |
|
| ... | ... |
@@ -7,7 +7,7 @@ page_keywords: docker, run, configure, runtime |
| 7 | 7 |
**Docker runs processes in isolated containers**. When an operator |
| 8 | 8 |
executes `docker run`, she starts a process with its own file system, |
| 9 | 9 |
its own networking, and its own isolated process tree. The |
| 10 |
-[*Image*](/terms/image/#image-def) which starts the process may define |
|
| 10 |
+[*Image*](/terms/image/#image) which starts the process may define |
|
| 11 | 11 |
defaults related to the binary to run, the networking to expose, and |
| 12 | 12 |
more, but `docker run` gives final control to the operator who starts |
| 13 | 13 |
the container from the image. That's the main reason |
| ... | ... |
@@ -114,7 +114,7 @@ The UUID identifiers come from the Docker daemon, and if you do not |
| 114 | 114 |
assign a name to the container with `--name` then the daemon will also |
| 115 | 115 |
generate a random string name too. The name can become a handy way to |
| 116 | 116 |
add meaning to a container since you can use this name when defining |
| 117 |
-[*links*](/userguide/dockerlinks/#working-with-links-names) (or any |
|
| 117 |
+[*links*](/userguide/dockerlinks) (or any |
|
| 118 | 118 |
other place you need to identify a container). This works for both |
| 119 | 119 |
background and foreground Docker containers. |
| 120 | 120 |
|
| ... | ... |
@@ -420,7 +420,7 @@ familiar with using LXC directly. |
| 420 | 420 |
|
| 421 | 421 |
## Overriding Dockerfile image defaults |
| 422 | 422 |
|
| 423 |
-When a developer builds an image from a [*Dockerfile*](/reference/builder/#dockerbuilder) |
|
| 423 |
+When a developer builds an image from a [*Dockerfile*](/reference/builder) |
|
| 424 | 424 |
or when she commits it, the developer can set a number of default parameters |
| 425 | 425 |
that take effect when the image starts up as a container. |
| 426 | 426 |
|
| ... | ... |
@@ -634,7 +634,7 @@ container's `/etc/hosts` entry will be automatically updated. |
| 634 | 634 |
|
| 635 | 635 |
The volumes commands are complex enough to have their own documentation |
| 636 | 636 |
in section [*Managing data in |
| 637 |
-containers*](/userguide/dockervolumes/#volume-def). A developer can define |
|
| 637 |
+containers*](/userguide/dockervolumes). A developer can define |
|
| 638 | 638 |
one or more `VOLUME`'s associated with an image, but only the operator |
| 639 | 639 |
can give access from one container to another (or from a container to a |
| 640 | 640 |
volume mounted on the host). |
| ... | ... |
@@ -8,10 +8,10 @@ page_keywords: containers, lxc, concepts, explanation, image, container |
| 8 | 8 |
|
| 9 | 9 |
 |
| 10 | 10 |
|
| 11 |
-In Docker terminology, a read-only [*Layer*](/terms/layer/#layer-def) is |
|
| 11 |
+In Docker terminology, a read-only [*Layer*](/terms/layer/#layer) is |
|
| 12 | 12 |
called an **image**. An image never changes. |
| 13 | 13 |
|
| 14 |
-Since Docker uses a [*Union File System*](/terms/layer/#ufs-def), the |
|
| 14 |
+Since Docker uses a [*Union File System*](/terms/layer/#union-file-system), the |
|
| 15 | 15 |
processes think the whole file system is mounted read-write. But all the |
| 16 | 16 |
changes go to the top-most writeable layer, and underneath, the original |
| 17 | 17 |
file in the read-only image is unchanged. Since images don't change, |
| ... | ... |
@@ -7,7 +7,7 @@ page_keywords: containers, lxc, concepts, explanation, image, container |
| 7 | 7 |
## Introduction |
| 8 | 8 |
|
| 9 | 9 |
In a traditional Linux boot, the kernel first mounts the root [*File |
| 10 |
-System*](/terms/filesystem/#filesystem-def) as read-only, checks its |
|
| 10 |
+System*](/terms/filesystem) as read-only, checks its |
|
| 11 | 11 |
integrity, and then switches the whole rootfs volume to read-write mode. |
| 12 | 12 |
|
| 13 | 13 |
## Layer |
| ... | ... |
@@ -36,8 +36,8 @@ e-mail address. It will then automatically log you in. You can now commit and |
| 36 | 36 |
push your own images up to your repos on Docker Hub. |
| 37 | 37 |
|
| 38 | 38 |
> **Note:** |
| 39 |
-> Your authentication credentials will be stored in the [`.dockercfg` |
|
| 40 |
-> authentication file](#authentication-file) in your home directory. |
|
| 39 |
+> Your authentication credentials will be stored in the `.dockercfg` |
|
| 40 |
+> authentication file in your home directory. |
|
| 41 | 41 |
|
| 42 | 42 |
## Searching for images |
| 43 | 43 |
|
| ... | ... |
@@ -21,7 +21,7 @@ Docker. |
| 21 | 21 |
|
| 22 | 22 |
A *data volume* is a specially-designated directory within one or more |
| 23 | 23 |
containers that bypasses the [*Union File |
| 24 |
-System*](/terms/layer/#ufs-def) to provide several useful features for |
|
| 24 |
+System*](/terms/layer/#union-file-system) to provide several useful features for |
|
| 25 | 25 |
persistent or shared data: |
| 26 | 26 |
|
| 27 | 27 |
- Data volumes can be shared and reused between containers |
| ... | ... |
@@ -29,7 +29,7 @@ page_keywords: documentation, docs, the docker guide, docker guide, docker, dock |
| 29 | 29 |
<p> |
| 30 | 30 |
<div class="alert alert-success" id="all_good" style="display:none;">Congratulations, you made no mistake!<br /> |
| 31 | 31 |
Tell the world <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.docker.io/learn/dockerfile/level1/" data-text="I just successfully answered questions of the #Dockerfile tutorial Level 1. What's your score?" data-via="docker" >Tweet</a><br /> |
| 32 |
- And try the next challenge: <a href="#fill_the_dockerfile">Fill the Dockerfile</a> |
|
| 32 |
+ And try the next challenge: <a href="#fill-the-dockerfile">Fill the Dockerfile</a> |
|
| 33 | 33 |
</div> |
| 34 | 34 |
<div class="alert alert-error" id="no_good" style="display:none;">Your Dockerfile skills are not yet perfect, try to take the time to read this tutorial again.</div> |
| 35 | 35 |
<div class="alert alert-block" id="some_good" style="display:none;">You're almost there! Read carefully the sections corresponding to your errors, and take the test again!</div> |
| ... | ... |
@@ -69,4 +69,4 @@ Tell the world! <a href="https://twitter.com/share" class="twitter-share-button" |
| 69 | 69 |
which user to use, and how expose a particular port.</p> |
| 70 | 70 |
|
| 71 | 71 |
<a title="back" class="btn btn-primary back" href="/userguide/dockerimages/#creating-our-own-images">Back</a> |
| 72 |
-<a title="next level" class="btn btn-primary" href="/userguide/level2">Go to the next level</a> |
|
| 73 | 72 |
\ No newline at end of file |
| 73 |
+<a title="next level" class="btn btn-primary" href="/userguide/level2">Go to the next level</a> |
| ... | ... |
@@ -39,7 +39,7 @@ What is the Dockerfile instruction to specify the base image?<br> |
| 39 | 39 |
|
| 40 | 40 |
<div class="alert alert-success" id="all_good" style="display:none;">Congratulations, you made no mistake!<br /> |
| 41 | 41 |
Tell the world <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.docker.io/learn/dockerfile/level1/" data-text="I just successfully answered questions of the #Dockerfile tutorial Level 1. What's your score?" data-via="docker" >Tweet</a><br /> |
| 42 |
- And try the next challenge: <a href="#fill_the_dockerfile">Fill the Dockerfile</a> |
|
| 42 |
+ And try the next challenge: <a href="#fill-the-dockerfile">Fill the Dockerfile</a> |
|
| 43 | 43 |
</div> |
| 44 | 44 |
<div class="alert alert-error" id="no_good" style="display:none;">Your Dockerfile skills are not yet perfect, try to take the time to read this tutorial again.</div> |
| 45 | 45 |
<div class="alert alert-block" id="some_good" style="display:none;">You're almost there! Read carefully the sections corresponding to your errors, and take the test again!</div> |
| ... | ... |
@@ -93,4 +93,4 @@ Thanks for going through our tutorial! We will be posting Level 3 in the future. |
| 93 | 93 |
|
| 94 | 94 |
To improve your Dockerfile writing skills even further, visit the <a href="https://docs.docker.com/articles/dockerfile_best-practices/">Dockerfile best practices page</a>. |
| 95 | 95 |
|
| 96 |
-<a title="creating our own images" class="btn btn-primary" href="/userguide/dockerimages/#creating-our-own-images">Back to the Docs!</a> |
|
| 97 | 96 |
\ No newline at end of file |
| 97 |
+<a title="creating our own images" class="btn btn-primary" href="/userguide/dockerimages/#creating-our-own-images">Back to the Docs!</a> |