Standardized formatting of CLI reference commands

Command name should be a H1

Only Description, Examples, and Related Commands should be H2

Changed 'Related information' heading to 'Related commands' since 99% it is only linking commands

Added some examples where relevant

Signed-off-by: Misty Stanley-Jones <misty@docker.com>
This commit is contained in:
Misty Stanley-Jones 2017-02-07 15:42:48 -08:00 committed by Tibor Vass
parent cf4b3715ed
commit ddadd3db49
101 changed files with 2740 additions and 1742 deletions

View File

@ -27,6 +27,8 @@ Options:
--sig-proxy Proxy all received signals to the process (default true) --sig-proxy Proxy all received signals to the process (default true)
``` ```
## Description
Use `docker attach` to attach to a running container using the container's ID Use `docker attach` to attach to a running container using the container's ID
or name, either to view its ongoing output or to control it interactively. or name, either to view its ongoing output or to control it interactively.
You can attach to the same contained process multiple times simultaneously, You can attach to the same contained process multiple times simultaneously,
@ -55,8 +57,7 @@ performance critical applications that generate a lot of output in the
foreground over a slow client connection. Instead, users should use the foreground over a slow client connection. Instead, users should use the
`docker logs` command to get access to the logs. `docker logs` command to get access to the logs.
### Override the detach sequence
## Override the detach sequence
If you want, you can configure an override the Docker key sequence for detach. If you want, you can configure an override the Docker key sequence for detach.
This is useful if the Docker default sequence conflicts with key sequence you This is useful if the Docker default sequence conflicts with key sequence you
@ -80,52 +81,72 @@ These `a`, `ctrl-a`, `X`, or `ctrl-\\` values are all examples of valid key
sequences. To configure a different configuration default key sequence for all sequences. To configure a different configuration default key sequence for all
containers, see [**Configuration file** section](cli.md#configuration-files). containers, see [**Configuration file** section](cli.md#configuration-files).
#### Examples ## Examples
$ docker run -d --name topdemo ubuntu /usr/bin/top -b ### Attach to and detach from a running container
$ docker attach topdemo
top - 02:05:52 up 3:05, 0 users, load average: 0.01, 0.02, 0.05
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 373572k total, 355560k used, 18012k free, 27872k buffers
Swap: 786428k total, 0k used, 786428k free, 221740k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ```bash
1 root 20 0 17200 1116 912 R 0 0.3 0:00.03 top $ docker run -d --name topdemo ubuntu /usr/bin/top -b
top - 02:05:55 up 3:05, 0 users, load average: 0.01, 0.02, 0.05 $ docker attach topdemo
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 373572k total, 355244k used, 18328k free, 27872k buffers
Swap: 786428k total, 0k used, 786428k free, 221776k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND top - 02:05:52 up 3:05, 0 users, load average: 0.01, 0.02, 0.05
1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 373572k total, 355560k used, 18012k free, 27872k buffers
Swap: 786428k total, 0k used, 786428k free, 221740k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 17200 1116 912 R 0 0.3 0:00.03 top
top - 02:05:55 up 3:05, 0 users, load average: 0.01, 0.02, 0.05
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 373572k total, 355244k used, 18328k free, 27872k buffers
Swap: 786428k total, 0k used, 786428k free, 221776k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top
top - 02:05:58 up 3:06, 0 users, load average: 0.01, 0.02, 0.05 top - 02:05:58 up 3:06, 0 users, load average: 0.01, 0.02, 0.05
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 373572k total, 355780k used, 17792k free, 27880k buffers Mem: 373572k total, 355780k used, 17792k free, 27880k buffers
Swap: 786428k total, 0k used, 786428k free, 221776k cached Swap: 786428k total, 0k used, 786428k free, 221776k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top 1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top
^C$ ^C$
$ echo $?
0 $ echo $?
$ docker ps -a | grep topdemo 0
7998ac8581f9 ubuntu:14.04 "/usr/bin/top -b" 38 seconds ago Exited (0) 21 seconds ago topdemo $ docker ps -a | grep topdemo
7998ac8581f9 ubuntu:14.04 "/usr/bin/top -b" 38 seconds ago Exited (0) 21 seconds ago topdemo
```
### Get the exit code of the container's command
And in this second example, you can see the exit code returned by the `bash` And in this second example, you can see the exit code returned by the `bash`
process is returned by the `docker attach` command to its caller too: process is returned by the `docker attach` command to its caller too:
```bash
$ docker run --name test -d -it debian $ docker run --name test -d -it debian
275c44472aebd77c926d4527885bb09f2f6db21d878c75f0a1c212c03d3bcfab 275c44472aebd77c926d4527885bb09f2f6db21d878c75f0a1c212c03d3bcfab
$ docker attach test $ docker attach test
root@f38c87f2a42d:/# exit 13 root@f38c87f2a42d:/# exit 13
exit exit
$ echo $? $ echo $?
13 13
$ docker ps -a | grep test $ docker ps -a | grep test
275c44472aeb debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test 275c44472aeb debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test
```

View File

@ -58,6 +58,8 @@ Options:
--ulimit value Ulimit options (default []) --ulimit value Ulimit options (default [])
``` ```
## Description
Builds Docker images from a Dockerfile and a "context". A build's context is Builds Docker images from a Dockerfile and a "context". A build's context is
the files located in the specified `PATH` or `URL`. The build process can refer the files located in the specified `PATH` or `URL`. The build process can refer
to any of the files in the context. For example, your build can use an to any of the files in the context. For example, your build can use an
@ -285,7 +287,7 @@ $ docker build - < context.tar.gz
This will build an image for a compressed context read from `STDIN`. Supported This will build an image for a compressed context read from `STDIN`. Supported
formats are: bzip2, gzip and xz. formats are: bzip2, gzip and xz.
### Usage of .dockerignore ### Use a .dockerignore file
```bash ```bash
$ docker build . $ docker build .
@ -315,7 +317,7 @@ directory from the context. Its effect can be seen in the changed size of the
uploaded context. The builder reference contains detailed information on uploaded context. The builder reference contains detailed information on
[creating a .dockerignore file](../builder.md#dockerignore-file) [creating a .dockerignore file](../builder.md#dockerignore-file)
### Tag image (-t) ### Tag an image (-t)
```bash ```bash
$ docker build -t vieux/apache:2.0 . $ docker build -t vieux/apache:2.0 .
@ -334,7 +336,7 @@ For example, to tag an image both as `whenry/fedora-jboss:latest` and
```bash ```bash
$ docker build -t whenry/fedora-jboss:latest -t whenry/fedora-jboss:v2.1 . $ docker build -t whenry/fedora-jboss:latest -t whenry/fedora-jboss:v2.1 .
``` ```
### Specify Dockerfile (-f) ### Specify a Dockerfile (-f)
```bash ```bash
$ docker build -f Dockerfile.debug . $ docker build -f Dockerfile.debug .
@ -373,7 +375,7 @@ the command line.
> repeatable builds on remote Docker hosts. This is also the reason why > repeatable builds on remote Docker hosts. This is also the reason why
> `ADD ../file` will not work. > `ADD ../file` will not work.
### Optional parent cgroup (--cgroup-parent) ### Use a custom parent cgroup (--cgroup-parent)
When `docker build` is run with the `--cgroup-parent` option the containers When `docker build` is run with the `--cgroup-parent` option the containers
used in the build will be run with the [corresponding `docker run` used in the build will be run with the [corresponding `docker run`

View File

@ -13,7 +13,7 @@ keywords: "Docker, Docker documentation, CLI, command line"
will be rejected. will be rejected.
--> -->
# Use the Docker command line # docker
To list available commands, either run `docker` with no parameters To list available commands, either run `docker` with no parameters
or execute `docker help`: or execute `docker help`:
@ -43,6 +43,8 @@ Commands:
# […] # […]
``` ```
## Description
Depending on your Docker system configuration, you may be required to preface Depending on your Docker system configuration, you may be required to preface
each `docker` command with `sudo`. To avoid having to use `sudo` with the each `docker` command with `sudo`. To avoid having to use `sudo` with the
`docker` command, your system administrator can create a Unix group called `docker` command, your system administrator can create a Unix group called
@ -51,7 +53,7 @@ each `docker` command with `sudo`. To avoid having to use `sudo` with the
For more information about installing Docker or `sudo` configuration, refer to For more information about installing Docker or `sudo` configuration, refer to
the [installation](https://docs.docker.com/engine/installation/) instructions for your operating system. the [installation](https://docs.docker.com/engine/installation/) instructions for your operating system.
## Environment variables ### Environment variables
For easy reference, the following list of environment variables are supported For easy reference, the following list of environment variables are supported
by the `docker` command line: by the `docker` command line:
@ -69,7 +71,7 @@ by the `docker` command line:
Equates to `--disable-content-trust=false` for build, create, pull, push, run. Equates to `--disable-content-trust=false` for build, create, pull, push, run.
* `DOCKER_CONTENT_TRUST_SERVER` The URL of the Notary server to use. This defaults * `DOCKER_CONTENT_TRUST_SERVER` The URL of the Notary server to use. This defaults
to the same URL as the registry. to the same URL as the registry.
* `DOCKER_HIDE_LEGACY_COMMANDS` When set, Docker hides "legacy" top-level commands (such as `docker rm`, and * `DOCKER_HIDE_LEGACY_COMMANDS` When set, Docker hides "legacy" top-level commands (such as `docker rm`, and
`docker pull`) in `docker help` output, and only `Management commands` per object-type (e.g., `docker container`) are `docker pull`) in `docker help` output, and only `Management commands` per object-type (e.g., `docker container`) are
printed. This may become the default in a future release, at which point this environment-variable is removed. printed. This may become the default in a future release, at which point this environment-variable is removed.
* `DOCKER_TMPDIR` Location for temporary Docker files. * `DOCKER_TMPDIR` Location for temporary Docker files.
@ -85,7 +87,7 @@ These Go environment variables are case-insensitive. See the
[Go specification](http://golang.org/pkg/net/http/) for details on these [Go specification](http://golang.org/pkg/net/http/) for details on these
variables. variables.
## Configuration files ### Configuration files
By default, the Docker command line stores its configuration files in a By default, the Docker command line stores its configuration files in a
directory called `.docker` within your `$HOME` directory. However, you can directory called `.docker` within your `$HOME` directory. However, you can
@ -192,25 +194,27 @@ attach`, `docker exec`, `docker run` or `docker start` command.
Following is a sample `config.json` file: Following is a sample `config.json` file:
{% raw %} ```json
{ {% raw %}
"HttpHeaders": { {
"MyHeader": "MyValue" "HttpHeaders": {
}, "MyHeader": "MyValue"
"psFormat": "table {{.ID}}\\t{{.Image}}\\t{{.Command}}\\t{{.Labels}}", },
"imagesFormat": "table {{.ID}}\\t{{.Repository}}\\t{{.Tag}}\\t{{.CreatedAt}}", "psFormat": "table {{.ID}}\\t{{.Image}}\\t{{.Command}}\\t{{.Labels}}",
"pluginsFormat": "table {{.ID}}\t{{.Name}}\t{{.Enabled}}", "imagesFormat": "table {{.ID}}\\t{{.Repository}}\\t{{.Tag}}\\t{{.CreatedAt}}",
"statsFormat": "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}", "pluginsFormat": "table {{.ID}}\t{{.Name}}\t{{.Enabled}}",
"servicesFormat": "table {{.ID}}\t{{.Name}}\t{{.Mode}}", "statsFormat": "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}",
"serviceInspectFormat": "pretty", "servicesFormat": "table {{.ID}}\t{{.Name}}\t{{.Mode}}",
"detachKeys": "ctrl-e,e", "serviceInspectFormat": "pretty",
"credsStore": "secretservice", "detachKeys": "ctrl-e,e",
"credHelpers": { "credsStore": "secretservice",
"awesomereg.example.org": "hip-star", "credHelpers": {
"unicorn.example.com": "vcbait" "awesomereg.example.org": "hip-star",
} "unicorn.example.com": "vcbait"
} }
{% endraw %} }
{% endraw %}
```
### Notary ### Notary
@ -221,7 +225,9 @@ Certificate Authority, you need to place the certificate at
Alternatively you can trust the certificate globally by adding it to your system's Alternatively you can trust the certificate globally by adding it to your system's
list of root Certificate Authorities. list of root Certificate Authorities.
## Help ## Examples
### Display help text
To list the help on any command just execute the command, followed by the To list the help on any command just execute the command, followed by the
`--help` option. `--help` option.
@ -237,13 +243,13 @@ To list the help on any command just execute the command, followed by the
-a, --attach value Attach to STDIN, STDOUT or STDERR (default []) -a, --attach value Attach to STDIN, STDOUT or STDERR (default [])
... ...
## Option types ### Option types
Single character command line options can be combined, so rather than Single character command line options can be combined, so rather than
typing `docker run -i -t --name test busybox sh`, typing `docker run -i -t --name test busybox sh`,
you can write `docker run -it --name test busybox sh`. you can write `docker run -it --name test busybox sh`.
### Boolean #### Boolean
Boolean options take the form `-d=false`. The value you see in the help text is Boolean options take the form `-d=false`. The value you see in the help text is
the default value which is set if you do **not** specify that flag. If you the default value which is set if you do **not** specify that flag. If you
@ -256,27 +262,33 @@ container **will** run in "detached" mode, in the background.
Options which default to `true` (e.g., `docker build --rm=true`) can only be Options which default to `true` (e.g., `docker build --rm=true`) can only be
set to the non-default value by explicitly setting them to `false`: set to the non-default value by explicitly setting them to `false`:
$ docker build --rm=false . ```bash
$ docker build --rm=false .
```
### Multi #### Multi
You can specify options like `-a=[]` multiple times in a single command line, You can specify options like `-a=[]` multiple times in a single command line,
for example in these commands: for example in these commands:
$ docker run -a stdin -a stdout -i -t ubuntu /bin/bash ```bash
$ docker run -a stdin -a stdout -a stderr ubuntu /bin/ls $ docker run -a stdin -a stdout -i -t ubuntu /bin/bash
$ docker run -a stdin -a stdout -a stderr ubuntu /bin/ls
```
Sometimes, multiple options can call for a more complex value string as for Sometimes, multiple options can call for a more complex value string as for
`-v`: `-v`:
$ docker run -v /host:/container example/mysql ```bash
$ docker run -v /host:/container example/mysql
```
> **Note:** > **Note**: Do not use the `-t` and `-a stderr` options together due to
> Do not use the `-t` and `-a stderr` options together due to
> limitations in the `pty` implementation. All `stderr` in `pty` mode > limitations in the `pty` implementation. All `stderr` in `pty` mode
> simply goes to `stdout`. > simply goes to `stdout`.
### Strings and Integers #### Strings and Integers
Options like `--name=""` expect a string, and they Options like `--name=""` expect a string, and they
can only be specified once. Options like `-c=0` can only be specified once. Options like `-c=0`

View File

@ -28,6 +28,8 @@ Options:
-p, --pause Pause container during commit (default true) -p, --pause Pause container during commit (default true)
``` ```
## Description
It can be useful to commit a container's file changes or settings into a new It can be useful to commit a container's file changes or settings into a new
image. This allows you debug a container by running an interactive shell, or to image. This allows you debug a container by running an interactive shell, or to
export a working dataset to another server. Generally, it is better to use export a working dataset to another server. Generally, it is better to use
@ -46,48 +48,72 @@ The `--change` option will apply `Dockerfile` instructions to the image that is
created. Supported `Dockerfile` instructions: created. Supported `Dockerfile` instructions:
`CMD`|`ENTRYPOINT`|`ENV`|`EXPOSE`|`LABEL`|`ONBUILD`|`USER`|`VOLUME`|`WORKDIR` `CMD`|`ENTRYPOINT`|`ENV`|`EXPOSE`|`LABEL`|`ONBUILD`|`USER`|`VOLUME`|`WORKDIR`
## Commit a container ## Examples
$ docker ps ### Commit a container
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit c3f279d17e0a svendowideit/testimage:version3
f5283438590d
$ docker images
REPOSITORY TAG ID CREATED SIZE
svendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB
## Commit a container with new configurations ```bash
$ docker ps
{% raw %} CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker ps c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
ICONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker inspect -f "{{ .Config.Env }}" c3f279d17e0a
[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
$ docker commit --change "ENV DEBUG true" c3f279d17e0a svendowideit/testimage:version3
f5283438590d
$ docker inspect -f "{{ .Config.Env }}" f5283438590d
[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]
{% endraw %}
## Commit a container with new `CMD` and `EXPOSE` instructions $ docker commit c3f279d17e0a svendowideit/testimage:version3
$ docker ps f5283438590d
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" c3f279d17e0a svendowideit/testimage:version4 $ docker images
f5283438590d
$ docker run -d svendowideit/testimage:version4 REPOSITORY TAG ID CREATED SIZE
89373736e2e7f00bc149bd783073ac43d0507da250e999f3f1036e0db60817c0 svendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB
```
$ docker ps ### Commit a container with new configurations
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
89373736e2e7 testimage:version4 "apachectl -DFOREGROU" 3 seconds ago Up 2 seconds 80/tcp distracted_fermat ```bash
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky {% raw %}
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton $ docker ps
ICONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker inspect -f "{{ .Config.Env }}" c3f279d17e0a
[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
$ docker commit --change "ENV DEBUG true" c3f279d17e0a svendowideit/testimage:version3
f5283438590d
$ docker inspect -f "{{ .Config.Env }}" f5283438590d
[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]
{% endraw %}
```
### Commit a container with new `CMD` and `EXPOSE` instructions
```bash
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" c3f279d17e0a svendowideit/testimage:version4
f5283438590d
$ docker run -d svendowideit/testimage:version4
89373736e2e7f00bc149bd783073ac43d0507da250e999f3f1036e0db60817c0
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
89373736e2e7 testimage:version4 "apachectl -DFOREGROU" 3 seconds ago Up 2 seconds 80/tcp distracted_fermat
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
```

View File

@ -27,8 +27,14 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Removes all stopped containers.
## Examples ## Examples
### Prune containers
```bash ```bash
$ docker container prune $ docker container prune
WARNING! This will remove all stopped containers. WARNING! This will remove all stopped containers.
@ -40,7 +46,7 @@ f98f9c2aa1eaf727e4ec9c0283bc7d4aa4762fbdba7f26191f26c97f64090360
Total reclaimed space: 212 B Total reclaimed space: 212 B
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -62,42 +68,54 @@ seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a
fraction of a second no more than nine digits long. fraction of a second no more than nine digits long.
The following removes containers created more than 5 minutes ago: The following removes containers created more than 5 minutes ago:
```bash ```bash
{% raw %}
$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}' $ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'
CONTAINER ID IMAGE COMMAND CREATED AT STATUS CONTAINER ID IMAGE COMMAND CREATED AT STATUS
61b9efa71024 busybox "sh" 2017-01-04 13:23:33 -0800 PST Exited (0) 41 seconds ago 61b9efa71024 busybox "sh" 2017-01-04 13:23:33 -0800 PST Exited (0) 41 seconds ago
53a9bc23a516 busybox "sh" 2017-01-04 13:11:59 -0800 PST Exited (0) 12 minutes ago 53a9bc23a516 busybox "sh" 2017-01-04 13:11:59 -0800 PST Exited (0) 12 minutes ago
$ docker container prune --force --filter "until=5m" $ docker container prune --force --filter "until=5m"
Deleted Containers: Deleted Containers:
53a9bc23a5168b6caa2bfbefddf1b30f93c7ad57f3dec271fd32707497cb9369 53a9bc23a5168b6caa2bfbefddf1b30f93c7ad57f3dec271fd32707497cb9369
Total reclaimed space: 25 B Total reclaimed space: 25 B
$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}' $ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'
CONTAINER ID IMAGE COMMAND CREATED AT STATUS CONTAINER ID IMAGE COMMAND CREATED AT STATUS
61b9efa71024 busybox "sh" 2017-01-04 13:23:33 -0800 PST Exited (0) 44 seconds ago 61b9efa71024 busybox "sh" 2017-01-04 13:23:33 -0800 PST Exited (0) 44 seconds ago
{% endraw %}
``` ```
The following removes containers created before `2017-01-04T13:10:00`: The following removes containers created before `2017-01-04T13:10:00`:
```bash ```bash
{% raw %}
$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}' $ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'
CONTAINER ID IMAGE COMMAND CREATED AT STATUS CONTAINER ID IMAGE COMMAND CREATED AT STATUS
53a9bc23a516 busybox "sh" 2017-01-04 13:11:59 -0800 PST Exited (0) 7 minutes ago 53a9bc23a516 busybox "sh" 2017-01-04 13:11:59 -0800 PST Exited (0) 7 minutes ago
4a75091a6d61 busybox "sh" 2017-01-04 13:09:53 -0800 PST Exited (0) 9 minutes ago 4a75091a6d61 busybox "sh" 2017-01-04 13:09:53 -0800 PST Exited (0) 9 minutes ago
$ docker container prune --force --filter "until=2017-01-04T13:10:00" $ docker container prune --force --filter "until=2017-01-04T13:10:00"
Deleted Containers: Deleted Containers:
4a75091a6d618526fcd8b33ccd6e5928ca2a64415466f768a6180004b0c72c6c 4a75091a6d618526fcd8b33ccd6e5928ca2a64415466f768a6180004b0c72c6c
Total reclaimed space: 27 B Total reclaimed space: 27 B
$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}' $ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'
CONTAINER ID IMAGE COMMAND CREATED AT STATUS CONTAINER ID IMAGE COMMAND CREATED AT STATUS
53a9bc23a516 busybox "sh" 2017-01-04 13:11:59 -0800 PST Exited (0) 9 minutes ago 53a9bc23a516 busybox "sh" 2017-01-04 13:11:59 -0800 PST Exited (0) 9 minutes ago
{% endraw %}
``` ```
## Related information ## Related commands
* [system df](system_df.md) * [system df](system_df.md)
* [volume prune](volume_prune.md) * [volume prune](volume_prune.md)

View File

@ -31,6 +31,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
The `docker cp` utility copies the contents of `SRC_PATH` to the `DEST_PATH`. The `docker cp` utility copies the contents of `SRC_PATH` to the `DEST_PATH`.
You can copy from the container's file system to the local machine or the You can copy from the container's file system to the local machine or the
reverse, from the local filesystem to the container. If `-` is specified for reverse, from the local filesystem to the container. If `-` is specified for
@ -96,15 +98,16 @@ you must be explicit with a relative or absolute path, for example:
It is not possible to copy certain system files such as resources under It is not possible to copy certain system files such as resources under
`/proc`, `/sys`, `/dev`, [tmpfs](run.md#mount-tmpfs-tmpfs), and mounts created by `/proc`, `/sys`, `/dev`, [tmpfs](run.md#mount-tmpfs-tmpfs), and mounts created by
the user in the container. However, you can still copy such files by manually the user in the container. However, you can still copy such files by manually
running `tar` in `docker exec`. For example (consider `SRC_PATH` and `DEST_PATH` running `tar` in `docker exec`. Both of the following examples do the same thing
are directories): in different ways (consider `SRC_PATH` and `DEST_PATH` are directories):
$ docker exec foo tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | tar Cxf DEST_PATH - ```bash
$ docker exec foo tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | tar Cxf DEST_PATH -
or ```
$ tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | docker exec -i foo tar Cxf DEST_PATH -
```bash
$ tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | docker exec -i foo tar Cxf DEST_PATH -
```
Using `-` as the `SRC_PATH` streams the contents of `STDIN` as a tar archive. Using `-` as the `SRC_PATH` streams the contents of `STDIN` as a tar archive.
The command extracts the content of the tar to the `DEST_PATH` in container's The command extracts the content of the tar to the `DEST_PATH` in container's

View File

@ -133,6 +133,7 @@ Options:
--volumes-from value Mount volumes from the specified container(s) (default []) --volumes-from value Mount volumes from the specified container(s) (default [])
-w, --workdir string Working directory inside the container -w, --workdir string Working directory inside the container
``` ```
## Description
The `docker create` command creates a writeable container layer over the The `docker create` command creates a writeable container layer over the
specified image and prepares it for running the specified command. The specified image and prepares it for running the specified command. The
@ -148,42 +149,64 @@ Please see the [run command](run.md) section and the [Docker run reference](../r
## Examples ## Examples
$ docker create -t -i fedora bash ### Create and start a container
6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
$ docker start -a -i 6d8af538ec5 ```bash
bash-4.2# $ docker create -t -i fedora bash
6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
$ docker start -a -i 6d8af538ec5
bash-4.2#
```
### Initialize volumes
As of v1.4.0 container volumes are initialized during the `docker create` phase As of v1.4.0 container volumes are initialized during the `docker create` phase
(i.e., `docker run` too). For example, this allows you to `create` the `data` (i.e., `docker run` too). For example, this allows you to `create` the `data`
volume container, and then use it from another container: volume container, and then use it from another container:
$ docker create -v /data --name data ubuntu ```bash
240633dfbb98128fa77473d3d9018f6123b99c454b3251427ae190a7d951ad57 $ docker create -v /data --name data ubuntu
$ docker run --rm --volumes-from data ubuntu ls -la /data
total 8 240633dfbb98128fa77473d3d9018f6123b99c454b3251427ae190a7d951ad57
drwxr-xr-x 2 root root 4096 Dec 5 04:10 .
drwxr-xr-x 48 root root 4096 Dec 5 04:11 .. $ docker run --rm --volumes-from data ubuntu ls -la /data
total 8
drwxr-xr-x 2 root root 4096 Dec 5 04:10 .
drwxr-xr-x 48 root root 4096 Dec 5 04:11 ..
```
Similarly, `create` a host directory bind mounted volume container, which can Similarly, `create` a host directory bind mounted volume container, which can
then be used from the subsequent container: then be used from the subsequent container:
$ docker create -v /home/docker:/docker --name docker ubuntu ```bash
9aa88c08f319cd1e4515c3c46b0de7cc9aa75e878357b1e96f91e2c773029f03 $ docker create -v /home/docker:/docker --name docker ubuntu
$ docker run --rm --volumes-from docker ubuntu ls -la /docker
total 20 9aa88c08f319cd1e4515c3c46b0de7cc9aa75e878357b1e96f91e2c773029f03
drwxr-sr-x 5 1000 staff 180 Dec 5 04:00 .
drwxr-xr-x 48 root root 4096 Dec 5 04:13 .. $ docker run --rm --volumes-from docker ubuntu ls -la /docker
-rw-rw-r-- 1 1000 staff 3833 Dec 5 04:01 .ash_history
-rw-r--r-- 1 1000 staff 446 Nov 28 11:51 .ashrc total 20
-rw-r--r-- 1 1000 staff 25 Dec 5 04:00 .gitconfig drwxr-sr-x 5 1000 staff 180 Dec 5 04:00 .
drwxr-sr-x 3 1000 staff 60 Dec 1 03:28 .local drwxr-xr-x 48 root root 4096 Dec 5 04:13 ..
-rw-r--r-- 1 1000 staff 920 Nov 28 11:51 .profile -rw-rw-r-- 1 1000 staff 3833 Dec 5 04:01 .ash_history
drwx--S--- 2 1000 staff 460 Dec 5 00:51 .ssh -rw-r--r-- 1 1000 staff 446 Nov 28 11:51 .ashrc
drwxr-xr-x 32 1000 staff 1140 Dec 5 04:01 docker -rw-r--r-- 1 1000 staff 25 Dec 5 04:00 .gitconfig
drwxr-sr-x 3 1000 staff 60 Dec 1 03:28 .local
-rw-r--r-- 1 1000 staff 920 Nov 28 11:51 .profile
drwx--S--- 2 1000 staff 460 Dec 5 00:51 .ssh
drwxr-xr-x 32 1000 staff 1140 Dec 5 04:01 docker
```
Set storage driver options per container. Set storage driver options per container.
$ docker create -it --storage-opt size=120G fedora /bin/bash ```bash
$ docker create -it --storage-opt size=120G fedora /bin/bash
```
This (size) will allow to set the container rootfs size to 120G at creation time. This (size) will allow to set the container rootfs size to 120G at creation time.
This option is only available for the `devicemapper`, `btrfs`, `overlay2`, This option is only available for the `devicemapper`, `btrfs`, `overlay2`,

View File

@ -14,7 +14,9 @@ advisory: "experimental"
will be rejected. will be rejected.
--> -->
# deploy (alias for stack deploy) (experimental) # deploy (experimental)
An alias for `stack deploy`.
```markdown ```markdown
Usage: docker deploy [OPTIONS] STACK Usage: docker deploy [OPTIONS] STACK
@ -31,15 +33,20 @@ Options:
--with-registry-auth Send registry authentication details to Swarm agents --with-registry-auth Send registry authentication details to Swarm agents
``` ```
## Description
Create and update a stack from a `compose` or a `dab` file on the swarm. This command Create and update a stack from a `compose` or a `dab` file on the swarm. This command
has to be run targeting a manager node. has to be run targeting a manager node.
## Compose file ## Examples
### Compose file
The `deploy` command supports compose file version `3.0` and above. The `deploy` command supports compose file version `3.0` and above.
```bash ```bash
$ docker stack deploy --compose-file docker-compose.yml vossibility $ docker stack deploy --compose-file docker-compose.yml vossibility
Ignoring unsupported options: links Ignoring unsupported options: links
Creating network vossibility_vossibility Creating network vossibility_vossibility
@ -54,8 +61,9 @@ Creating service vossibility_lookupd
You can verify that the services were correctly created You can verify that the services were correctly created
``` ```bash
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
29bv0vnlm903 vossibility_lookupd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662 29bv0vnlm903 vossibility_lookupd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
4awt47624qwh vossibility_nsqd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662 4awt47624qwh vossibility_nsqd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
@ -65,10 +73,11 @@ ID NAME MODE REPLICAS IMAGE
axqh55ipl40h vossibility_vossibility-collector replicated 1/1 icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba axqh55ipl40h vossibility_vossibility-collector replicated 1/1 icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba
``` ```
## DAB file ### DAB file
```bash ```bash
$ docker stack deploy --bundle-file vossibility-stack.dab vossibility $ docker stack deploy --bundle-file vossibility-stack.dab vossibility
Loading bundle from vossibility-stack.dab Loading bundle from vossibility-stack.dab
Creating service vossibility_elasticsearch Creating service vossibility_elasticsearch
Creating service vossibility_kibana Creating service vossibility_kibana
@ -82,6 +91,7 @@ You can verify that the services were correctly created:
```bash ```bash
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
29bv0vnlm903 vossibility_lookupd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662 29bv0vnlm903 vossibility_lookupd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
4awt47624qwh vossibility_nsqd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662 4awt47624qwh vossibility_nsqd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
@ -91,7 +101,7 @@ ID NAME MODE REPLICAS IMAGE
axqh55ipl40h vossibility_vossibility-collector replicated 1/1 icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba axqh55ipl40h vossibility_vossibility-collector replicated 1/1 icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba
``` ```
## Related information ## Related commands
* [stack config](stack_config.md) * [stack config](stack_config.md)
* [stack deploy](stack_deploy.md) * [stack deploy](stack_deploy.md)

View File

@ -13,7 +13,7 @@ keywords: "list, changed, files, container"
will be rejected. will be rejected.
--> -->
## diff # diff
```markdown ```markdown
Usage: docker diff CONTAINER Usage: docker diff CONTAINER
@ -24,6 +24,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
List the changed files and directories in a container᾿s filesystem since the List the changed files and directories in a container᾿s filesystem since the
container was created. Three different types of change are tracked: container was created. Three different types of change are tracked:

View File

@ -93,13 +93,17 @@ Options:
Options with [] may be specified multiple times. Options with [] may be specified multiple times.
dockerd is the persistent process that manages containers. Docker ## Description
`dockerd` is the persistent process that manages containers. Docker
uses different binaries for the daemon and client. To run the daemon you uses different binaries for the daemon and client. To run the daemon you
type `dockerd`. type `dockerd`.
To run the daemon with debug output, use `dockerd -D`. To run the daemon with debug output, use `dockerd -D`.
## Daemon socket option ## Examples
### Daemon socket option
The Docker daemon can listen for [Docker Engine API](../api/) The Docker daemon can listen for [Docker Engine API](../api/)
requests via three different types of Socket: `unix`, `tcp`, and `fd`. requests via three different types of Socket: `unix`, `tcp`, and `fd`.
@ -118,8 +122,7 @@ interface using its IP address: `-H tcp://192.168.59.103:2375`. It is
conventional to use port `2375` for un-encrypted, and port `2376` for encrypted conventional to use port `2375` for un-encrypted, and port `2376` for encrypted
communication with the daemon. communication with the daemon.
> **Note:** > **Note**: If you're using an HTTPS encrypted socket, keep in mind that only
> If you're using an HTTPS encrypted socket, keep in mind that only
> TLS1.0 and greater are supported. Protocols SSLv3 and under are not > TLS1.0 and greater are supported. Protocols SSLv3 and under are not
> supported anymore for security reasons. > supported anymore for security reasons.
@ -136,18 +139,21 @@ time using multiple `-H` options:
```bash ```bash
# listen using the default unix socket, and on 2 specific IP addresses on this host. # listen using the default unix socket, and on 2 specific IP addresses on this host.
$ sudo dockerd -H unix:///var/run/docker.sock -H tcp://192.168.59.106 -H tcp://10.10.10.2 $ sudo dockerd -H unix:///var/run/docker.sock -H tcp://192.168.59.106 -H tcp://10.10.10.2
``` ```
The Docker client will honor the `DOCKER_HOST` environment variable to set the The Docker client will honor the `DOCKER_HOST` environment variable to set the
`-H` flag for the client. `-H` flag for the client. Use **one** of the following commands:
```bash ```bash
$ docker -H tcp://0.0.0.0:2375 ps $ docker -H tcp://0.0.0.0:2375 ps
# or ```
```bash
$ export DOCKER_HOST="tcp://0.0.0.0:2375" $ export DOCKER_HOST="tcp://0.0.0.0:2375"
$ docker ps $ docker ps
# both are equal
``` ```
Setting the `DOCKER_TLS_VERIFY` environment variable to any value other than Setting the `DOCKER_TLS_VERIFY` environment variable to any value other than
@ -165,7 +171,7 @@ The Docker client will honor the `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`
environment variables (or the lowercase versions thereof). `HTTPS_PROXY` takes environment variables (or the lowercase versions thereof). `HTTPS_PROXY` takes
precedence over `HTTP_PROXY`. precedence over `HTTP_PROXY`.
### Bind Docker to another host/port or a Unix socket #### Bind Docker to another host/port or a Unix socket
> **Warning**: > **Warning**:
> Changing the default `docker` daemon binding to a > Changing the default `docker` daemon binding to a
@ -231,7 +237,7 @@ $ docker pull ubuntu
$ docker -H tcp://127.0.0.1:2375 pull ubuntu $ docker -H tcp://127.0.0.1:2375 pull ubuntu
``` ```
### Daemon storage-driver option ### Daemon storage-driver
The Docker daemon has support for several different image layer storage The Docker daemon has support for several different image layer storage
drivers: `aufs`, `devicemapper`, `btrfs`, `zfs`, `overlay` and `overlay2`. drivers: `aufs`, `devicemapper`, `btrfs`, `zfs`, `overlay` and `overlay2`.
@ -268,22 +274,20 @@ the same file can share a single page cache entry (or entries), it makes
`overlay` as efficient with memory as `aufs` driver. Call `overlay` as efficient with memory as `aufs` driver. Call
`dockerd -s overlay` to use it. `dockerd -s overlay` to use it.
> **Note:** > **Note**: As promising as `overlay` is, the feature is still quite young and
> As promising as `overlay` is, the feature is still quite young and should not > should not be used in production. Most notably, using `overlay` can cause
> be used in production. Most notably, using `overlay` can cause excessive > excessive inode consumption (especially as the number of images grows), as
> inode consumption (especially as the number of images grows), as well as > well as > being incompatible with the use of RPMs.
> being incompatible with the use of RPMs.
The `overlay2` uses the same fast union filesystem but takes advantage of The `overlay2` uses the same fast union filesystem but takes advantage of
[additional features](https://lkml.org/lkml/2015/2/11/106) added in Linux [additional features](https://lkml.org/lkml/2015/2/11/106) added in Linux
kernel 4.0 to avoid excessive inode consumption. Call `dockerd -s overlay2` kernel 4.0 to avoid excessive inode consumption. Call `dockerd -s overlay2`
to use it. to use it.
> **Note:** > **Note**: Both `overlay` and `overlay2` are currently unsupported on `btrfs`
> Both `overlay` and `overlay2` are currently unsupported on `btrfs` or any > or any Copy on Write filesystem and should only be used over `ext4` partitions.
> Copy on Write filesystem and should only be used over `ext4` partitions.
### Storage driver options ### Options per storage driver
Particular storage-driver can be configured with options specified with Particular storage-driver can be configured with options specified with
`--storage-opt` flags. Options for `devicemapper` are prefixed with `dm`, `--storage-opt` flags. Options for `devicemapper` are prefixed with `dm`,
@ -291,380 +295,376 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
#### Devicemapper options #### Devicemapper options
* `dm.thinpooldev` ##### `dm.thinpooldev`
Specifies a custom block storage device to use for the thin pool. Specifies a custom block storage device to use for the thin pool.
If using a block device for device mapper storage, it is best to use `lvm` If using a block device for device mapper storage, it is best to use `lvm`
to create and manage the thin-pool volume. This volume is then handed to Docker to create and manage the thin-pool volume. This volume is then handed to Docker
to exclusively create snapshot volumes needed for images and containers. to exclusively create snapshot volumes needed for images and containers.
Managing the thin-pool outside of Engine makes for the most feature-rich Managing the thin-pool outside of Engine makes for the most feature-rich
method of having Docker utilize device mapper thin provisioning as the method of having Docker utilize device mapper thin provisioning as the
backing storage for Docker containers. The highlights of the lvm-based backing storage for Docker containers. The highlights of the lvm-based
thin-pool management feature include: automatic or interactive thin-pool thin-pool management feature include: automatic or interactive thin-pool
resize support, dynamically changing thin-pool features, automatic thinp resize support, dynamically changing thin-pool features, automatic thinp
metadata checking when lvm activates the thin-pool, etc. metadata checking when lvm activates the thin-pool, etc.
As a fallback if no thin pool is provided, loopback files are As a fallback if no thin pool is provided, loopback files are
created. Loopback is very slow, but can be used without any created. Loopback is very slow, but can be used without any
pre-configuration of storage. It is strongly recommended that you do pre-configuration of storage. It is strongly recommended that you do
not use loopback in production. Ensure your Engine daemon has a not use loopback in production. Ensure your Engine daemon has a
`--storage-opt dm.thinpooldev` argument provided. `--storage-opt dm.thinpooldev` argument provided.
Example use: ###### Example:
```bash ```bash
$ sudo dockerd --storage-opt dm.thinpooldev=/dev/mapper/thin-pool $ sudo dockerd --storage-opt dm.thinpooldev=/dev/mapper/thin-pool
``` ```
* `dm.basesize` ##### `dm.basesize`
Specifies the size to use when creating the base device, which limits the Specifies the size to use when creating the base device, which limits the
size of images and containers. The default value is 10G. Note, thin devices size of images and containers. The default value is 10G. Note, thin devices
are inherently "sparse", so a 10G device which is mostly empty doesn't use are inherently "sparse", so a 10G device which is mostly empty doesn't use
10 GB of space on the pool. However, the filesystem will use more space for 10 GB of space on the pool. However, the filesystem will use more space for
the empty case the larger the device is. the empty case the larger the device is.
The base device size can be increased at daemon restart which will allow The base device size can be increased at daemon restart which will allow
all future images and containers (based on those new images) to be of the all future images and containers (based on those new images) to be of the
new base device size. new base device size.
Example use: ###### Examples
```bash ```bash
$ sudo dockerd --storage-opt dm.basesize=50G $ sudo dockerd --storage-opt dm.basesize=50G
``` ```
This will increase the base device size to 50G. The Docker daemon will throw an This will increase the base device size to 50G. The Docker daemon will throw an
error if existing base device size is larger than 50G. A user can use error if existing base device size is larger than 50G. A user can use
this option to expand the base device size however shrinking is not permitted. this option to expand the base device size however shrinking is not permitted.
This value affects the system-wide "base" empty filesystem This value affects the system-wide "base" empty filesystem
that may already be initialized and inherited by pulled images. Typically, that may already be initialized and inherited by pulled images. Typically,
a change to this value requires additional steps to take effect: a change to this value requires additional steps to take effect:
```bash ```bash
$ sudo service docker stop $ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start
```
Example use: $ sudo rm -rf /var/lib/docker
```bash $ sudo service docker start
$ sudo dockerd --storage-opt dm.basesize=20G ```
```
* `dm.loopdatasize`
> **Note**: ##### `dm.loopdatasize`
> This option configures devicemapper loopback, which should not
> be used in production.
Specifies the size to use when creating the loopback file for the > **Note**: This option configures devicemapper loopback, which should not
"data" device which is used for the thin pool. The default size is > be used in production.
100G. The file is sparse, so it will not initially take up this
much space.
Example use: Specifies the size to use when creating the loopback file for the
"data" device which is used for the thin pool. The default size is
100G. The file is sparse, so it will not initially take up this
much space.
```bash ###### Example
$ sudo dockerd --storage-opt dm.loopdatasize=200G
```
* `dm.loopmetadatasize` ```bash
$ sudo dockerd --storage-opt dm.loopdatasize=200G
```
> **Note**: ##### `dm.loopmetadatasize`
> This option configures devicemapper loopback, which should not
> be used in production.
Specifies the size to use when creating the loopback file for the > **Note**: This option configures devicemapper loopback, which should not
"metadata" device which is used for the thin pool. The default size > be used in production.
is 2G. The file is sparse, so it will not initially take up
this much space.
Example use: Specifies the size to use when creating the loopback file for the
"metadata" device which is used for the thin pool. The default size
is 2G. The file is sparse, so it will not initially take up
this much space.
```bash ###### Example
$ sudo dockerd --storage-opt dm.loopmetadatasize=4G
```
* `dm.fs` ```bash
$ sudo dockerd --storage-opt dm.loopmetadatasize=4G
```
Specifies the filesystem type to use for the base device. The supported ##### `dm.fs`
options are "ext4" and "xfs". The default is "xfs"
Example use: Specifies the filesystem type to use for the base device. The supported
options are "ext4" and "xfs". The default is "xfs"
```bash ###### Example
$ sudo dockerd --storage-opt dm.fs=ext4
```
* `dm.mkfsarg` ```bash
$ sudo dockerd --storage-opt dm.fs=ext4
```
Specifies extra mkfs arguments to be used when creating the base device. ##### `dm.mkfsarg`
Example use: Specifies extra mkfs arguments to be used when creating the base device.
```bash ###### Example
$ sudo dockerd --storage-opt "dm.mkfsarg=-O ^has_journal"
```
* `dm.mountopt` ```bash
$ sudo dockerd --storage-opt "dm.mkfsarg=-O ^has_journal"
```
Specifies extra mount options used when mounting the thin devices. ##### `dm.mountopt`
Example use: Specifies extra mount options used when mounting the thin devices.
```bash ###### Example
$ sudo dockerd --storage-opt dm.mountopt=nodiscard
```
* `dm.datadev` ```bash
$ sudo dockerd --storage-opt dm.mountopt=nodiscard
```
(Deprecated, use `dm.thinpooldev`) ##### `dm.datadev`
Specifies a custom blockdevice to use for data for the thin pool. (Deprecated, use `dm.thinpooldev`)
If using a block device for device mapper storage, ideally both datadev and Specifies a custom blockdevice to use for data for the thin pool.
metadatadev should be specified to completely avoid using the loopback
device.
Example use: If using a block device for device mapper storage, ideally both `datadev` and
`metadatadev` should be specified to completely avoid using the loopback
device.
```bash ###### Example
$ sudo dockerd \
--storage-opt dm.datadev=/dev/sdb1 \
--storage-opt dm.metadatadev=/dev/sdc1
```
* `dm.metadatadev` ```bash
$ sudo dockerd \
--storage-opt dm.datadev=/dev/sdb1 \
--storage-opt dm.metadatadev=/dev/sdc1
```
(Deprecated, use `dm.thinpooldev`) ##### `dm.metadatadev`
Specifies a custom blockdevice to use for metadata for the thin pool. (Deprecated, use `dm.thinpooldev`)
For best performance the metadata should be on a different spindle than the Specifies a custom blockdevice to use for metadata for the thin pool.
data, or even better on an SSD.
If setting up a new metadata pool it is required to be valid. This can be For best performance the metadata should be on a different spindle than the
achieved by zeroing the first 4k to indicate empty metadata, like this: data, or even better on an SSD.
```bash If setting up a new metadata pool it is required to be valid. This can be
$ dd if=/dev/zero of=$metadata_dev bs=4096 count=1 achieved by zeroing the first 4k to indicate empty metadata, like this:
```
Example use: ```bash
$ dd if=/dev/zero of=$metadata_dev bs=4096 count=1
```
```bash ###### Example
$ sudo dockerd \
--storage-opt dm.datadev=/dev/sdb1 \
--storage-opt dm.metadatadev=/dev/sdc1
```
* `dm.blocksize` ```bash
$ sudo dockerd \
--storage-opt dm.datadev=/dev/sdb1 \
--storage-opt dm.metadatadev=/dev/sdc1
```
Specifies a custom blocksize to use for the thin pool. The default ##### `dm.blocksize`
blocksize is 64K.
Example use: Specifies a custom blocksize to use for the thin pool. The default
blocksize is 64K.
```bash ###### Example
$ sudo dockerd --storage-opt dm.blocksize=512K
```
* `dm.blkdiscard` ```bash
$ sudo dockerd --storage-opt dm.blocksize=512K
```
Enables or disables the use of blkdiscard when removing devicemapper ##### `dm.blkdiscard`
devices. This is enabled by default (only) if using loopback devices and is
required to resparsify the loopback file on image/container removal.
Disabling this on loopback can lead to *much* faster container removal Enables or disables the use of `blkdiscard` when removing devicemapper
times, but will make the space used in `/var/lib/docker` directory not be devices. This is enabled by default (only) if using loopback devices and is
returned to the system for other use when containers are removed. required to resparsify the loopback file on image/container removal.
Example use: Disabling this on loopback can lead to *much* faster container removal
times, but will make the space used in `/var/lib/docker` directory not be
returned to the system for other use when containers are removed.
```bash ###### Examples
$ sudo dockerd --storage-opt dm.blkdiscard=false
```
* `dm.override_udev_sync_check` ```bash
$ sudo dockerd --storage-opt dm.blkdiscard=false
```
Overrides the `udev` synchronization checks between `devicemapper` and `udev`. ##### `dm.override_udev_sync_check`
`udev` is the device manager for the Linux kernel.
To view the `udev` sync support of a Docker daemon that is using the Overrides the `udev` synchronization checks between `devicemapper` and `udev`.
`devicemapper` driver, run: `udev` is the device manager for the Linux kernel.
```bash To view the `udev` sync support of a Docker daemon that is using the
$ docker info `devicemapper` driver, run:
[...]
Udev Sync Supported: true
[...]
```
When `udev` sync support is `true`, then `devicemapper` and udev can ```bash
coordinate the activation and deactivation of devices for containers. $ docker info
[...]
Udev Sync Supported: true
[...]
```
When `udev` sync support is `false`, a race condition occurs between When `udev` sync support is `true`, then `devicemapper` and udev can
the`devicemapper` and `udev` during create and cleanup. The race condition coordinate the activation and deactivation of devices for containers.
results in errors and failures. (For information on these failures, see
[docker#4036](https://github.com/docker/docker/issues/4036))
To allow the `docker` daemon to start, regardless of `udev` sync not being When `udev` sync support is `false`, a race condition occurs between
supported, set `dm.override_udev_sync_check` to true: the`devicemapper` and `udev` during create and cleanup. The race condition
results in errors and failures. (For information on these failures, see
[docker#4036](https://github.com/docker/docker/issues/4036))
```bash To allow the `docker` daemon to start, regardless of `udev` sync not being
$ sudo dockerd --storage-opt dm.override_udev_sync_check=true supported, set `dm.override_udev_sync_check` to true:
```
When this value is `true`, the `devicemapper` continues and simply warns ```bash
you the errors are happening. $ sudo dockerd --storage-opt dm.override_udev_sync_check=true
```
> **Note:** When this value is `true`, the `devicemapper` continues and simply warns
> The ideal is to pursue a `docker` daemon and environment that does you the errors are happening.
> support synchronizing with `udev`. For further discussion on this
> topic, see [docker#4036](https://github.com/docker/docker/issues/4036).
> Otherwise, set this flag for migrating existing Docker daemons to
> a daemon with a supported environment.
* `dm.use_deferred_removal` > **Note**: The ideal is to pursue a `docker` daemon and environment that does
> support synchronizing with `udev`. For further discussion on this
> topic, see [docker#4036](https://github.com/docker/docker/issues/4036).
> Otherwise, set this flag for migrating existing Docker daemons to
> a daemon with a supported environment.
Enables use of deferred device removal if `libdm` and the kernel driver ##### `dm.use_deferred_removal`
support the mechanism.
Deferred device removal means that if device is busy when devices are Enables use of deferred device removal if `libdm` and the kernel driver
being removed/deactivated, then a deferred removal is scheduled on support the mechanism.
device. And devices automatically go away when last user of the device
exits.
For example, when a container exits, its associated thin device is removed. Deferred device removal means that if device is busy when devices are
If that device has leaked into some other mount namespace and can't be being removed/deactivated, then a deferred removal is scheduled on
removed, the container exit still succeeds and this option causes the device. And devices automatically go away when last user of the device
system to schedule the device for deferred removal. It does not wait in a exits.
loop trying to remove a busy device.
Example use: For example, when a container exits, its associated thin device is removed.
If that device has leaked into some other mount namespace and can't be
removed, the container exit still succeeds and this option causes the
system to schedule the device for deferred removal. It does not wait in a
loop trying to remove a busy device.
```bash ###### Example
$ sudo dockerd --storage-opt dm.use_deferred_removal=true
```
* `dm.use_deferred_deletion` ```bash
$ sudo dockerd --storage-opt dm.use_deferred_removal=true
```
Enables use of deferred device deletion for thin pool devices. By default, ##### `dm.use_deferred_deletion`
thin pool device deletion is synchronous. Before a container is deleted,
the Docker daemon removes any associated devices. If the storage driver
can not remove a device, the container deletion fails and daemon returns.
Error deleting container: Error response from daemon: Cannot destroy container Enables use of deferred device deletion for thin pool devices. By default,
thin pool device deletion is synchronous. Before a container is deleted,
the Docker daemon removes any associated devices. If the storage driver
can not remove a device, the container deletion fails and daemon returns.
To avoid this failure, enable both deferred device deletion and deferred ```none
device removal on the daemon. Error deleting container: Error response from daemon: Cannot destroy container
```
```bash To avoid this failure, enable both deferred device deletion and deferred
$ sudo dockerd \ device removal on the daemon.
--storage-opt dm.use_deferred_deletion=true \
--storage-opt dm.use_deferred_removal=true
```
With these two options enabled, if a device is busy when the driver is ```bash
deleting a container, the driver marks the device as deleted. Later, when $ sudo dockerd \
the device isn't in use, the driver deletes it. --storage-opt dm.use_deferred_deletion=true \
--storage-opt dm.use_deferred_removal=true
```
In general it should be safe to enable this option by default. It will help With these two options enabled, if a device is busy when the driver is
when unintentional leaking of mount point happens across multiple mount deleting a container, the driver marks the device as deleted. Later, when
namespaces. the device isn't in use, the driver deletes it.
* `dm.min_free_space` In general it should be safe to enable this option by default. It will help
when unintentional leaking of mount point happens across multiple mount
namespaces.
Specifies the min free space percent in a thin pool require for new device ##### `dm.min_free_space`
creation to succeed. This check applies to both free data space as well
as free metadata space. Valid values are from 0% - 99%. Value 0% disables
free space checking logic. If user does not specify a value for this option,
the Engine uses a default value of 10%.
Whenever a new a thin pool device is created (during `docker pull` or during Specifies the min free space percent in a thin pool require for new device
container creation), the Engine checks if the minimum free space is creation to succeed. This check applies to both free data space as well
available. If sufficient space is unavailable, then device creation fails as free metadata space. Valid values are from 0% - 99%. Value 0% disables
and any relevant `docker` operation fails. free space checking logic. If user does not specify a value for this option,
the Engine uses a default value of 10%.
To recover from this error, you must create more free space in the thin pool Whenever a new a thin pool device is created (during `docker pull` or during
to recover from the error. You can create free space by deleting some images container creation), the Engine checks if the minimum free space is
and containers from the thin pool. You can also add more storage to the thin available. If sufficient space is unavailable, then device creation fails
pool. and any relevant `docker` operation fails.
To add more space to a LVM (logical volume management) thin pool, just add To recover from this error, you must create more free space in the thin pool
more storage to the volume group container thin pool; this should automatically to recover from the error. You can create free space by deleting some images
resolve any errors. If your configuration uses loop devices, then stop the and containers from the thin pool. You can also add more storage to the thin
Engine daemon, grow the size of loop files and restart the daemon to resolve pool.
the issue.
Example use: To add more space to a LVM (logical volume management) thin pool, just add
more storage to the volume group container thin pool; this should automatically
resolve any errors. If your configuration uses loop devices, then stop the
Engine daemon, grow the size of loop files and restart the daemon to resolve
the issue.
```bash ###### Example
$ sudo dockerd --storage-opt dm.min_free_space=10%
```
* `dm.xfs_nospace_max_retries` ```bash
$ sudo dockerd --storage-opt dm.min_free_space=10%
```
Specifies the maximum number of retries XFS should attempt to complete ##### `dm.xfs_nospace_max_retries`
IO when ENOSPC (no space) error is returned by underlying storage device.
By default XFS retries infinitely for IO to finish and this can result Specifies the maximum number of retries XFS should attempt to complete
in unkillable process. To change this behavior one can set IO when ENOSPC (no space) error is returned by underlying storage device.
xfs_nospace_max_retries to say 0 and XFS will not retry IO after getting
ENOSPC and will shutdown filesystem.
Example use: By default XFS retries infinitely for IO to finish and this can result
in unkillable process. To change this behavior one can set
xfs_nospace_max_retries to say 0 and XFS will not retry IO after getting
ENOSPC and will shutdown filesystem.
```bash ###### Example
$ sudo dockerd --storage-opt dm.xfs_nospace_max_retries=0
``` ```bash
$ sudo dockerd --storage-opt dm.xfs_nospace_max_retries=0
```
#### ZFS options #### ZFS options
* `zfs.fsname` ##### `zfs.fsname`
Set zfs filesystem under which docker will create its own datasets. Set zfs filesystem under which docker will create its own datasets.
By default docker will pick up the zfs filesystem where docker graph By default docker will pick up the zfs filesystem where docker graph
(`/var/lib/docker`) is located. (`/var/lib/docker`) is located.
Example use: ###### Example
```bash ```bash
$ sudo dockerd -s zfs --storage-opt zfs.fsname=zroot/docker $ sudo dockerd -s zfs --storage-opt zfs.fsname=zroot/docker
``` ```
#### Btrfs options #### Btrfs options
* `btrfs.min_space` ##### `btrfs.min_space`
Specifies the minimum size to use when creating the subvolume which is used Specifies the minimum size to use when creating the subvolume which is used
for containers. If user uses disk quota for btrfs when creating or running for containers. If user uses disk quota for btrfs when creating or running
a container with **--storage-opt size** option, docker should ensure the a container with **--storage-opt size** option, docker should ensure the
**size** cannot be smaller than **btrfs.min_space**. **size** cannot be smaller than **btrfs.min_space**.
Example use: ###### Example
```bash ```bash
$ sudo dockerd -s btrfs --storage-opt btrfs.min_space=10G $ sudo dockerd -s btrfs --storage-opt btrfs.min_space=10G
``` ```
#### Overlay2 options #### Overlay2 options
* `overlay2.override_kernel_check` ##### `overlay2.override_kernel_check`
Overrides the Linux kernel version check allowing overlay2. Support for Overrides the Linux kernel version check allowing overlay2. Support for
specifying multiple lower directories needed by overlay2 was added to the specifying multiple lower directories needed by overlay2 was added to the
Linux kernel in 4.0.0. However, some older kernel versions may be patched Linux kernel in 4.0.0. However, some older kernel versions may be patched
to add multiple lower directory support for OverlayFS. This option should to add multiple lower directory support for OverlayFS. This option should
only be used after verifying this support exists in the kernel. Applying only be used after verifying this support exists in the kernel. Applying
this option on a kernel without this support will cause failures on mount. this option on a kernel without this support will cause failures on mount.
## Docker runtime execution options ### Docker runtime execution options
The Docker daemon relies on a The Docker daemon relies on a
[OCI](https://github.com/opencontainers/runtime-spec) compliant runtime [OCI](https://github.com/opencontainers/runtime-spec) compliant runtime
@ -707,9 +707,9 @@ This is the same example via the command line:
$ sudo dockerd --add-runtime runc=runc --add-runtime custom=/usr/local/bin/my-runc-replacement $ sudo dockerd --add-runtime runc=runc --add-runtime custom=/usr/local/bin/my-runc-replacement
``` ```
> **Note**: defining runtime arguments via the command line is not supported. > **Note**: Defining runtime arguments via the command line is not supported.
## Options for the runtime #### Options for the runtime
You can configure the runtime using options specified You can configure the runtime using options specified
with the `--exec-opt` flag. All the flag's options have the `native` prefix. A with the `--exec-opt` flag. All the flag's options have the `native` prefix. A
@ -739,7 +739,7 @@ Will make `hyperv` the default isolation technology on Windows. If no isolation
value is specified on daemon start, on Windows client, the default is value is specified on daemon start, on Windows client, the default is
`hyperv`, and on Windows server, the default is `process`. `hyperv`, and on Windows server, the default is `process`.
## Daemon DNS options #### Daemon DNS options
To set the DNS server for all Docker containers, use: To set the DNS server for all Docker containers, use:
@ -753,7 +753,7 @@ To set the DNS search domain for all Docker containers, use:
$ sudo dockerd --dns-search example.com $ sudo dockerd --dns-search example.com
``` ```
## Insecure registries #### Insecure registries
Docker considers a private registry either secure or insecure. In the rest of Docker considers a private registry either secure or insecure. In the rest of
this section, *registry* is used for *private registry*, and `myregistry:5000` this section, *registry* is used for *private registry*, and `myregistry:5000`
@ -797,11 +797,11 @@ because its use creates security vulnerabilities it should ONLY be enabled for
testing purposes. For increased security, users should add their CA to their testing purposes. For increased security, users should add their CA to their
system's list of trusted CAs instead of enabling `--insecure-registry`. system's list of trusted CAs instead of enabling `--insecure-registry`.
## Legacy Registries ##### Legacy Registries
Enabling `--disable-legacy-registry` forces a docker daemon to only interact with registries which support the V2 protocol. Specifically, the daemon will not attempt `push`, `pull` and `login` to v1 registries. The exception to this is `search` which can still be performed on v1 registries. Enabling `--disable-legacy-registry` forces a docker daemon to only interact with registries which support the V2 protocol. Specifically, the daemon will not attempt `push`, `pull` and `login` to v1 registries. The exception to this is `search` which can still be performed on v1 registries.
## Running a Docker daemon behind an HTTPS_PROXY #### Running a Docker daemon behind an HTTPS_PROXY
When running inside a LAN that uses an `HTTPS` proxy, the Docker Hub When running inside a LAN that uses an `HTTPS` proxy, the Docker Hub
certificates will be replaced by the proxy's certificates. These certificates certificates will be replaced by the proxy's certificates. These certificates
@ -818,7 +818,7 @@ This will only add the proxy and authentication to the Docker daemon's requests
your `docker build`s and running containers will need extra configuration to your `docker build`s and running containers will need extra configuration to
use the proxy use the proxy
## Default Ulimits #### Default `ulimit` settings
`--default-ulimit` allows you to set the default `ulimit` options to use for `--default-ulimit` allows you to set the default `ulimit` options to use for
all containers. It takes the same options as `--ulimit` for `docker run`. If all containers. It takes the same options as `--ulimit` for `docker run`. If
@ -830,7 +830,7 @@ Be careful setting `nproc` with the `ulimit` flag as `nproc` is designed by Linu
set the maximum number of processes available to a user, not to a container. For details set the maximum number of processes available to a user, not to a container. For details
please check the [run](run.md) reference. please check the [run](run.md) reference.
## Nodes discovery #### Node discovery
The `--cluster-advertise` option specifies the `host:port` or `interface:port` The `--cluster-advertise` option specifies the `host:port` or `interface:port`
combination that this particular daemon instance should use when advertising combination that this particular daemon instance should use when advertising
@ -856,39 +856,16 @@ $ sudo dockerd \
The currently supported cluster store options are: The currently supported cluster store options are:
* `discovery.heartbeat` | Option | Description |
|-----------------------|-------------|
| `discovery.heartbeat` | Specifies the heartbeat timer in seconds which is used by the daemon as a `keepalive` mechanism to make sure discovery module treats the node as alive in the cluster. If not configured, the default value is 20 seconds. |
| `discovery.ttl` | Specifies the TTL (time-to-live) in seconds which is used by the discovery module to timeout a node if a valid heartbeat is not received within the configured ttl value. If not configured, the default value is 60 seconds. |
| `kv.cacertfile` | Specifies the path to a local file with PEM encoded CA certificates to trust. |
| `kv.certfile` | Specifies the path to a local file with a PEM encoded certificate. This certificate is used as the client cert for communication with the Key/Value store. |
| `kv.keyfile` | Specifies the path to a local file with a PEM encoded private key. This private key is used as the client key for communication with the Key/Value store. |
| `kv.path` | Specifies the path in the Key/Value store. If not configured, the default value is 'docker/nodes'. |
Specifies the heartbeat timer in seconds which is used by the daemon as a #### Access authorization
keepalive mechanism to make sure discovery module treats the node as alive
in the cluster. If not configured, the default value is 20 seconds.
* `discovery.ttl`
Specifies the ttl (time-to-live) in seconds which is used by the discovery
module to timeout a node if a valid heartbeat is not received within the
configured ttl value. If not configured, the default value is 60 seconds.
* `kv.cacertfile`
Specifies the path to a local file with PEM encoded CA certificates to trust
* `kv.certfile`
Specifies the path to a local file with a PEM encoded certificate. This
certificate is used as the client cert for communication with the
Key/Value store.
* `kv.keyfile`
Specifies the path to a local file with a PEM encoded private key. This
private key is used as the client key for communication with the
Key/Value store.
* `kv.path`
Specifies the path in the Key/Value store. If not configured, the default value is 'docker/nodes'.
## Access authorization
Docker's access authorization can be extended by authorization plugins that your Docker's access authorization can be extended by authorization plugins that your
organization can purchase or build themselves. You can install one or more organization can purchase or build themselves. You can install one or more
@ -913,7 +890,7 @@ For information about how to create an authorization plugin, see [authorization
plugin](../../extend/plugins_authorization.md) section in the Docker extend section of this documentation. plugin](../../extend/plugins_authorization.md) section in the Docker extend section of this documentation.
## Daemon user namespace options #### Daemon user namespace options
The Linux kernel [user namespace support](http://man7.org/linux/man-pages/man7/user_namespaces.7.html) provides additional security by enabling The Linux kernel [user namespace support](http://man7.org/linux/man-pages/man7/user_namespaces.7.html) provides additional security by enabling
a process, and therefore a container, to have a unique range of user and a process, and therefore a container, to have a unique range of user and
@ -946,7 +923,7 @@ and provided subordinate uid and gid ranges. This default user will be named
> pull`, `docker push`, and container startup as users expect with > pull`, `docker push`, and container startup as users expect with
> user namespaces disabled. > user namespaces disabled.
### Starting the daemon with user namespaces enabled ##### Start the daemon with user namespaces enabled
To enable user namespace support, start the daemon with the To enable user namespace support, start the daemon with the
`--userns-remap` flag, which accepts values in the following formats: `--userns-remap` flag, which accepts values in the following formats:
@ -993,7 +970,7 @@ with user namespaces enabled or not. If the daemon is configured with user
namespaces, the Security Options entry in the response will list "userns" as namespaces, the Security Options entry in the response will list "userns" as
one of the enabled security features. one of the enabled security features.
#### Behavior differences when user namespaces are enabled ##### Behavior differences when user namespaces are enabled
When you start the Docker daemon with `--userns-remap`, Docker segregates the graph directory When you start the Docker daemon with `--userns-remap`, Docker segregates the graph directory
where the images are stored by adding an extra directory with a name corresponding to the where the images are stored by adding an extra directory with a name corresponding to the
@ -1006,7 +983,7 @@ images and container layers, are also owned by the new UID and GID. To set the o
correctly, you need to re-pull the images and restart the containers after starting the correctly, you need to re-pull the images and restart the containers after starting the
daemon with `--userns-remap`. daemon with `--userns-remap`.
### Detailed information on `subuid`/`subgid` ranges ##### Detailed information on `subuid`/`subgid` ranges
Given potential advanced use of the subordinate ID ranges by power users, the Given potential advanced use of the subordinate ID ranges by power users, the
following paragraphs define how the Docker daemon currently uses the range entries following paragraphs define how the Docker daemon currently uses the range entries
@ -1029,7 +1006,7 @@ following algorithm to create the mapping ranges:
2. Map segments will be created from each range in increasing value with a length matching the length of each segment. Therefore the range segment with the lowest numeric starting value will be equal to the remapped root, and continue up through host uid/gid equal to the range segment length. As an example, if the lowest segment starts at ID 1000 and has a length of 100, then a map of 1000 -> 0 (the remapped root) up through 1100 -> 100 will be created from this segment. If the next segment starts at ID 10000, then the next map will start with mapping 10000 -> 101 up to the length of this second segment. This will continue until no more segments are found in the subordinate files for this user. 2. Map segments will be created from each range in increasing value with a length matching the length of each segment. Therefore the range segment with the lowest numeric starting value will be equal to the remapped root, and continue up through host uid/gid equal to the range segment length. As an example, if the lowest segment starts at ID 1000 and has a length of 100, then a map of 1000 -> 0 (the remapped root) up through 1100 -> 100 will be created from this segment. If the next segment starts at ID 10000, then the next map will start with mapping 10000 -> 101 up to the length of this second segment. This will continue until no more segments are found in the subordinate files for this user.
3. If more than five range segments exist for a single user, only the first five will be utilized, matching the kernel's limitation of only five entries in `/proc/self/uid_map` and `proc/self/gid_map`. 3. If more than five range segments exist for a single user, only the first five will be utilized, matching the kernel's limitation of only five entries in `/proc/self/uid_map` and `proc/self/gid_map`.
### Disable user namespace for a container ##### Disable user namespace for a container
If you enable user namespaces on the daemon, all containers are started If you enable user namespaces on the daemon, all containers are started
with user namespaces enabled. In some situations you might want to disable with user namespaces enabled. In some situations you might want to disable
@ -1039,7 +1016,7 @@ To enable those advanced features for a specific container use `--userns=host`
in the `run/exec/create` command. in the `run/exec/create` command.
This option will completely disable user namespace mapping for the container's user. This option will completely disable user namespace mapping for the container's user.
### User namespace known restrictions ##### User namespace known restrictions
The following standard Docker features are currently incompatible when The following standard Docker features are currently incompatible when
running a Docker daemon with user namespaces enabled: running a Docker daemon with user namespaces enabled:
@ -1062,7 +1039,7 @@ process. The most notable restriction that we are aware of at this time is the
inability to use `mknod`. Permission will be denied for device creation even as inability to use `mknod`. Permission will be denied for device creation even as
container `root` inside a user namespace. container `root` inside a user namespace.
## Miscellaneous options ### Miscellaneous options
IP masquerading uses address translation to allow containers without a public IP masquerading uses address translation to allow containers without a public
IP to talk to other machines on the Internet. This may interfere with some IP to talk to other machines on the Internet. This may interfere with some
@ -1077,7 +1054,7 @@ set like this:
export DOCKER_TMPDIR=/mnt/disk2/tmp export DOCKER_TMPDIR=/mnt/disk2/tmp
/usr/local/bin/dockerd -D -g /var/lib/docker -H unix:// > /var/lib/docker-machine/docker.log 2>&1 /usr/local/bin/dockerd -D -g /var/lib/docker -H unix:// > /var/lib/docker-machine/docker.log 2>&1
## Default cgroup parent #### Default cgroup parent
The `--cgroup-parent` option allows you to set the default cgroup parent The `--cgroup-parent` option allows you to set the default cgroup parent
to use for containers. If this option is not set, it defaults to `/docker` for to use for containers. If this option is not set, it defaults to `/docker` for
@ -1104,7 +1081,7 @@ This setting can also be set per container, using the `--cgroup-parent`
option on `docker create` and `docker run`, and takes precedence over option on `docker create` and `docker run`, and takes precedence over
the `--cgroup-parent` option on the daemon. the `--cgroup-parent` option on the daemon.
## Daemon Metrics #### Daemon metrics
The `--metrics-addr` option takes a tcp address to serve the metrics API. The `--metrics-addr` option takes a tcp address to serve the metrics API.
This feature is still experimental, therefore, the daemon must be running in experimental This feature is still experimental, therefore, the daemon must be running in experimental
@ -1118,7 +1095,7 @@ If you are running a prometheus server you can add this address to your scrape c
to have prometheus collect metrics on Docker. For more information to have prometheus collect metrics on Docker. For more information
on prometheus you can view the website [here](https://prometheus.io/). on prometheus you can view the website [here](https://prometheus.io/).
```yml ```none
scrape_configs: scrape_configs:
- job_name: 'docker' - job_name: 'docker'
static_configs: static_configs:
@ -1129,7 +1106,7 @@ Please note that this feature is still marked as experimental as metrics and met
names could change while this feature is still in experimental. Please provide names could change while this feature is still in experimental. Please provide
feedback on what you would like to see collected in the API. feedback on what you would like to see collected in the API.
## Daemon configuration file #### Daemon configuration file
The `--config-file` option allows you to set any configuration option The `--config-file` option allows you to set any configuration option
for the daemon in a JSON format. This file uses the same flag names as keys, for the daemon in a JSON format. This file uses the same flag names as keys,
@ -1144,7 +1121,7 @@ For example, the daemon fails to start if you set daemon labels
in the configuration file and also set daemon labels via the `--label` flag. in the configuration file and also set daemon labels via the `--label` flag.
Options that are not present in the file are ignored when the daemon starts. Options that are not present in the file are ignored when the daemon starts.
### Linux configuration file ##### On Linux
The default location of the configuration file on Linux is The default location of the configuration file on Linux is
`/etc/docker/daemon.json`. The `--config-file` flag can be used to specify a `/etc/docker/daemon.json`. The `--config-file` flag can be used to specify a
@ -1229,7 +1206,7 @@ This is a full example of the allowed configuration options on Linux:
} }
``` ```
### Windows configuration file ##### On Windows
The default location of the configuration file on Windows is The default location of the configuration file on Windows is
`%programdata%\docker\config\daemon.json`. The `--config-file` flag can be `%programdata%\docker\config\daemon.json`. The `--config-file` flag can be
@ -1276,7 +1253,7 @@ This is a full example of the allowed configuration options on Windows:
} }
``` ```
### Configuration reloading #### Configuration reload behavior
Some options can be reconfigured when the daemon is running without requiring Some options can be reconfigured when the daemon is running without requiring
to restart the process. We use the `SIGHUP` signal in Linux to reload, and a global event to restart the process. We use the `SIGHUP` signal in Linux to reload, and a global event
@ -1313,7 +1290,7 @@ Configuration reload will log a warning message if it detects a change in
previously configured cluster configurations. previously configured cluster configurations.
## Running multiple daemons ### Run multiple daemons
> **Note:** Running multiple daemons on a single host is considered as "experimental". The user should be aware of > **Note:** Running multiple daemons on a single host is considered as "experimental". The user should be aware of
> unsolved problems. This solution may not work properly in some cases. Solutions are currently under development > unsolved problems. This solution may not work properly in some cases. Solutions are currently under development
@ -1326,7 +1303,7 @@ by providing them as flags, or by using a [daemon configuration file](#daemon-co
The following daemon options must be configured for each daemon: The following daemon options must be configured for each daemon:
```bash ```none
-b, --bridge= Attach containers to a network bridge -b, --bridge= Attach containers to a network bridge
--exec-root=/var/run/docker Root of the Docker execdriver --exec-root=/var/run/docker Root of the Docker execdriver
-g, --graph=/var/lib/docker Root of the Docker runtime -g, --graph=/var/lib/docker Root of the Docker runtime

View File

@ -28,29 +28,90 @@ Options:
--until string Stream events until this timestamp --until string Stream events until this timestamp
``` ```
## Description
Use `docker events` to get real-time events from the server. These events differ
per Docker object type.
### Object types
#### Containers
Docker containers report the following events: Docker containers report the following events:
attach, commit, copy, create, destroy, detach, die, exec_create, exec_detach, exec_start, export, health_status, kill, oom, pause, rename, resize, restart, start, stop, top, unpause, update - `attach`
- `commit`
- `copy`
- `create`
- `destroy`
- `detach`
- `die`
- `exec_create`
- `exec_detach`
- `exec_start`
- `export`
- `health_status`
- `kill`
- `oom`
- `pause`
- `rename`
- `resize`
- `restart`
- `start`
- `stop`
- `top`
- `unpause`
- `update`
#### Images
Docker images report the following events: Docker images report the following events:
delete, import, load, pull, push, save, tag, untag - `delete`
- `import`
- `load`
- `pull`
- `push`
- `save`
- `tag`
- `untag`
#### Plugins
Docker plugins report the following events: Docker plugins report the following events:
install, enable, disable, remove - `install`
- `enable`
- `disable`
- `remove`
#### Volumes
Docker volumes report the following events: Docker volumes report the following events:
create, mount, unmount, destroy - `create`
- `mount`
- `unmount`
- `destroy`
#### Networks
Docker networks report the following events: Docker networks report the following events:
create, connect, disconnect, destroy - `create`
- `connect`
- `disconnect`
- `destroy`
Docker daemon reports the following events: #### Daemons
reload Docker daemons report the following events:
- `reload`
### Limiting, filtering, and formatting the output
#### Limit events by time
The `--since` and `--until` parameters can be Unix timestamps, date formatted The `--since` and `--until` parameters can be Unix timestamps, date formatted
timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed
@ -65,7 +126,7 @@ that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap
seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a
fraction of a second no more than nine digits long. fraction of a second no more than nine digits long.
## Filtering #### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If you would The filtering flag (`-f` or `--filter`) format is of "key=value". If you would
like to use multiple filters, pass multiple flags (e.g., like to use multiple filters, pass multiple flags (e.g.,
@ -91,7 +152,7 @@ The currently supported filters are:
* network (`network=<name or id>`) * network (`network=<name or id>`)
* daemon (`daemon=<name or id>`) * daemon (`daemon=<name or id>`)
## Format #### Format
If a format (`--format`) is specified, the given template will be executed If a format (`--format`) is specified, the given template will be executed
instead of the default instead of the default
@ -103,132 +164,190 @@ Lines. For information about JSON Lines, please refer to http://jsonlines.org/ .
## Examples ## Examples
### Basic example
You'll need two shells for this example. You'll need two shells for this example.
**Shell 1: Listening for events:** **Shell 1: Listening for events:**
$ docker events ```bash
$ docker events
```
**Shell 2: Start and Stop containers:** **Shell 2: Start and Stop containers:**
$ docker create --name test alpine:latest top ```bash
$ docker start test $ docker create --name test alpine:latest top
$ docker stop test $ docker start test
$ docker stop test
```
**Shell 1: (Again .. now showing events):** **Shell 1: (Again .. now showing events):**
2017-01-05T00:35:58.859401177+08:00 container create 0fdb48addc82871eb34eb23a847cfd033dedd1a0a37bef2e6d9eb3870fc7ff37 (image=alpine:latest, name=test) ```none
2017-01-05T00:36:04.703631903+08:00 network connect e2e1f5ceda09d4300f3a846f0acfaa9a8bb0d89e775eb744c5acecd60e0529e2 (container=0fdb...ff37, name=bridge, type=bridge) 2017-01-05T00:35:58.859401177+08:00 container create 0fdb48addc82871eb34eb23a847cfd033dedd1a0a37bef2e6d9eb3870fc7ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test) 2017-01-05T00:36:04.703631903+08:00 network connect e2e1f5ceda09d4300f3a846f0acfaa9a8bb0d89e775eb744c5acecd60e0529e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15) 2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test) 2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge) 2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test) 2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
```
**Show events in the past from a specified time:** To exit the `docker events` command, use `CTRL+C`.
$ docker events --since 1483283804 ### Filter events by time
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
$ docker events --since '2017-01-05' You can filter the output by an absolute timestamp or relative time on the host
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local) machine, using the following different time syntaxes:
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
$ docker events --since '2013-09-03T15:49:29' ```bash
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local) $ docker events --since 1483283804
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test) 2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge) 2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test) 2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15) 2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test) 2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge) 2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test) 2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
This example outputs all events that were generated in the last 3 minutes, $ docker events --since '2017-01-05'
relative to the current time on the client machine: 2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
$ docker events --since '10m' $ docker events --since '2013-09-03T15:49:29'
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local) 2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test) 2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge) 2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test) 2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15) 2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test) 2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge) 2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test) 2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
**Filter events:** $ docker events --since '10m'
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
```
$ docker events --filter 'event=stop' ### Filter events by criteria
2017-01-05T00:40:22.880175420+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:41:17.888104182+08:00 container stop 2a8f...4e78 (image=alpine, name=kickass_brattain)
$ docker events --filter 'image=alpine' The following commands show several different ways to filter the `docker event`
2017-01-05T00:41:55.784240236+08:00 container create d9cd...4d70 (image=alpine, name=happy_meitner) output.
2017-01-05T00:41:55.913156783+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
2017-01-05T00:42:01.106875249+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=15)
2017-01-05T00:42:11.111934041+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=9)
2017-01-05T00:42:11.119578204+08:00 container die d9cd...4d70 (exitCode=137, image=alpine, name=happy_meitner)
2017-01-05T00:42:11.173276611+08:00 container stop d9cd...4d70 (image=alpine, name=happy_meitner)
$ docker events --filter 'container=test' ```bash
2017-01-05T00:43:00.139719934+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test) $ docker events --filter 'event=stop'
2017-01-05T00:43:09.259951086+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:43:09.270102715+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:43:09.312556440+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
$ docker events --filter 'container=test' --filter 'container=d9cdb1525ea8' 2017-01-05T00:40:22.880175420+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:44:11.517071981+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test) 2017-01-05T00:41:17.888104182+08:00 container stop 2a8f...4e78 (image=alpine, name=kickass_brattain)
2017-01-05T00:44:17.685870901+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
2017-01-05T00:44:29.757658470+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=9)
2017-01-05T00:44:29.767718510+08:00 container die 0fdb...ff37 (exitCode=137, image=alpine:latest, name=test)
2017-01-05T00:44:29.815798344+08:00 container destroy 0fdb...ff37 (image=alpine:latest, name=test)
$ docker events --filter 'container=test' --filter 'event=stop' $ docker events --filter 'image=alpine'
2017-01-05T00:46:13.664099505+08:00 container stop a9d1...e130 (image=alpine, name=test)
$ docker events --filter 'type=volume' 2017-01-05T00:41:55.784240236+08:00 container create d9cd...4d70 (image=alpine, name=happy_meitner)
2015-12-23T21:05:28.136212689Z volume create test-event-volume-local (driver=local) 2017-01-05T00:41:55.913156783+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
2015-12-23T21:05:28.383462717Z volume mount test-event-volume-local (read/write=true, container=562f...5025, destination=/foo, driver=local, propagation=rprivate) 2017-01-05T00:42:01.106875249+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=15)
2015-12-23T21:05:28.650314265Z volume unmount test-event-volume-local (container=562f...5025, driver=local) 2017-01-05T00:42:11.111934041+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=9)
2015-12-23T21:05:28.716218405Z volume destroy test-event-volume-local (driver=local) 2017-01-05T00:42:11.119578204+08:00 container die d9cd...4d70 (exitCode=137, image=alpine, name=happy_meitner)
2017-01-05T00:42:11.173276611+08:00 container stop d9cd...4d70 (image=alpine, name=happy_meitner)
$ docker events --filter 'type=network' $ docker events --filter 'container=test'
2015-12-23T21:38:24.705709133Z network create 8b11...2c5b (name=test-event-network-local, type=bridge)
2015-12-23T21:38:25.119625123Z network connect 8b11...2c5b (name=test-event-network-local, container=b4be...c54e, type=bridge)
$ docker events --filter 'type=plugin' (experimental) 2017-01-05T00:43:00.139719934+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2016-07-25T17:30:14.825557616Z plugin pull ec7b...993f (name=tiborvass/sample-volume-plugin:latest) 2017-01-05T00:43:09.259951086+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2016-07-25T17:30:14.888127370Z plugin enable ec7b...993f (name=tiborvass/sample-volume-plugin:latest) 2017-01-05T00:43:09.270102715+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:43:09.312556440+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
**Format:** $ docker events --filter 'container=test' --filter 'container=d9cdb1525ea8'
$ docker events --filter 'type=container' --format 'Type={{.Type}} Status={{.Status}} ID={{.ID}}' 2017-01-05T00:44:11.517071981+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
Type=container Status=create ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26 2017-01-05T00:44:17.685870901+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
Type=container Status=attach ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26 2017-01-05T00:44:29.757658470+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=9)
Type=container Status=start ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26 2017-01-05T00:44:29.767718510+08:00 container die 0fdb...ff37 (exitCode=137, image=alpine:latest, name=test)
Type=container Status=resize ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26 2017-01-05T00:44:29.815798344+08:00 container destroy 0fdb...ff37 (image=alpine:latest, name=test)
Type=container Status=die ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container Status=destroy ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
**Format (as JSON Lines):** $ docker events --filter 'container=test' --filter 'event=stop'
2017-01-05T00:46:13.664099505+08:00 container stop a9d1...e130 (image=alpine, name=test)
$ docker events --filter 'type=volume'
2015-12-23T21:05:28.136212689Z volume create test-event-volume-local (driver=local)
2015-12-23T21:05:28.383462717Z volume mount test-event-volume-local (read/write=true, container=562f...5025, destination=/foo, driver=local, propagation=rprivate)
2015-12-23T21:05:28.650314265Z volume unmount test-event-volume-local (container=562f...5025, driver=local)
2015-12-23T21:05:28.716218405Z volume destroy test-event-volume-local (driver=local)
$ docker events --filter 'type=network'
2015-12-23T21:38:24.705709133Z network create 8b11...2c5b (name=test-event-network-local, type=bridge)
2015-12-23T21:38:25.119625123Z network connect 8b11...2c5b (name=test-event-network-local, container=b4be...c54e, type=bridge)
$ docker events --filter 'container=container_1' --filter 'container=container_2'
2014-09-03T15:49:29.999999999Z07:00 container die 4386fb97867d (image=ubuntu-1:14.04)
2014-05-10T17:42:14.999999999Z07:00 container stop 4386fb97867d (image=ubuntu-1:14.04)
2014-05-10T17:42:14.999999999Z07:00 container die 7805c1d35632 (imager=redis:2.8)
2014-09-03T15:49:29.999999999Z07:00 container stop 7805c1d35632 (image=redis:2.8)
$ docker events --filter 'type=volume'
2015-12-23T21:05:28.136212689Z volume create test-event-volume-local (driver=local)
2015-12-23T21:05:28.383462717Z volume mount test-event-volume-local (read/write=true, container=562fe10671e9273da25eed36cdce26159085ac7ee6707105fd534866340a5025, destination=/foo, driver=local, propagation=rprivate)
2015-12-23T21:05:28.650314265Z volume unmount test-event-volume-local (container=562fe10671e9273da25eed36cdce26159085ac7ee6707105fd534866340a5025, driver=local)
2015-12-23T21:05:28.716218405Z volume destroy test-event-volume-local (driver=local)
$ docker events --filter 'type=network'
2015-12-23T21:38:24.705709133Z network create 8b111217944ba0ba844a65b13efcd57dc494932ee2527577758f939315ba2c5b (name=test-event-network-local, type=bridge)
2015-12-23T21:38:25.119625123Z network connect 8b111217944ba0ba844a65b13efcd57dc494932ee2527577758f939315ba2c5b (name=test-event-network-local, container=b4be644031a3d90b400f88ab3d4bdf4dc23adb250e696b6328b85441abe2c54e, type=bridge)
```
The `type=plugin` filter is experimental.
```bash
$ docker events --filter 'type=plugin'
2016-07-25T17:30:14.825557616Z plugin pull ec7b87f2ce84330fe076e666f17dfc049d2d7ae0b8190763de94e1f2d105993f (name=tiborvass/sample-volume-plugin:latest)
2016-07-25T17:30:14.888127370Z plugin enable ec7b87f2ce84330fe076e666f17dfc049d2d7ae0b8190763de94e1f2d105993f (name=tiborvass/sample-volume-plugin:latest)
```
### Format the output
```bash
{% raw %}
$ docker events --filter 'type=container' --format 'Type={{.Type}} Status={{.Status}} ID={{.ID}}'
Type=container Status=create ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container Status=attach ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container Status=start ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container Status=resize ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container Status=die ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container Status=destroy ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
{% endraw %}
```
#### Format as JSON
```none
{% raw %}
$ docker events --format '{{json .}}' $ docker events --format '{{json .}}'
{"status":"create","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4.. {"status":"create","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..
{"status":"attach","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4.. {"status":"attach","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..
{"Type":"network","Action":"connect","Actor":{"ID":"1b50a5bf755f6021dfa78e.. {"Type":"network","Action":"connect","Actor":{"ID":"1b50a5bf755f6021dfa78e..
{"status":"start","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f42.. {"status":"start","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f42..
{"status":"resize","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4.. {"status":"resize","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..
{% endraw %}
```

View File

@ -31,35 +31,61 @@ Options:
-u, --user Username or UID (format: <name|uid>[:<group|gid>]) -u, --user Username or UID (format: <name|uid>[:<group|gid>])
``` ```
## Descriptino
The `docker exec` command runs a new command in a running container. The `docker exec` command runs a new command in a running container.
The command started using `docker exec` only runs while the container's primary The command started using `docker exec` only runs while the container's primary
process (`PID 1`) is running, and it is not restarted if the container is process (`PID 1`) is running, and it is not restarted if the container is
restarted. restarted.
If the container is paused, then the `docker exec` command will fail with an error:
$ docker pause test
test
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ae3b36715d2 ubuntu:latest "bash" 17 seconds ago Up 16 seconds (Paused) test
$ docker exec test ls
FATA[0000] Error response from daemon: Container test is paused, unpause the container before exec
$ echo $?
1
## Examples ## Examples
$ docker run --name ubuntu_bash --rm -i -t ubuntu bash ### Run `docker exec` on a running container
First, start a container.
```bash
$ docker run --name ubuntu_bash --rm -i -t ubuntu bash
```
This will create a container named `ubuntu_bash` and start a Bash session. This will create a container named `ubuntu_bash` and start a Bash session.
$ docker exec -d ubuntu_bash touch /tmp/execWorks Next, execute a command on the container.
```bash
$ docker exec -d ubuntu_bash touch /tmp/execWorks
```
This will create a new file `/tmp/execWorks` inside the running container This will create a new file `/tmp/execWorks` inside the running container
`ubuntu_bash`, in the background. `ubuntu_bash`, in the background.
$ docker exec -it ubuntu_bash bash Next, execute an interactive `bash` shell on the container.
```bash
$ docker exec -it ubuntu_bash bash
```
This will create a new Bash session in the container `ubuntu_bash`. This will create a new Bash session in the container `ubuntu_bash`.
### Try to run `docker exec` on a paused container
If the container is paused, then the `docker exec` command will fail with an error:
```bash
$ docker pause test
test
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ae3b36715d2 ubuntu:latest "bash" 17 seconds ago Up 16 seconds (Paused) test
$ docker exec test ls
FATA[0000] Error response from daemon: Container test is paused, unpause the container before exec
$ echo $?
1
```

View File

@ -25,19 +25,24 @@ Options:
-o, --output string Write to a file, instead of STDOUT -o, --output string Write to a file, instead of STDOUT
``` ```
## Description
The `docker export` command does not export the contents of volumes associated The `docker export` command does not export the contents of volumes associated
with the container. If a volume is mounted on top of an existing directory in with the container. If a volume is mounted on top of an existing directory in
the container, `docker export` will export the contents of the *underlying* the container, `docker export` will export the contents of the *underlying*
directory, not the contents of the volume. directory, not the contents of the volume.
Refer to [Backup, restore, or migrate data Refer to [Backup, restore, or migrate data volumes](https://docs.docker.com/engine/tutorials/dockervolumes/#backup-restore-or-migrate-data-volumes)
volumes](https://docs.docker.com/engine/tutorials/dockervolumes/#backup-restore-or-migrate-data-volumes) in in the user guide for examples on exporting data in a volume.
the user guide for examples on exporting data in a volume.
## Examples ## Examples
$ docker export red_panda > latest.tar Each of these commands has the same result.
Or ```bash
$ docker export red_panda > latest.tar
```
$ docker export --output="latest.tar" red_panda ```bash
$ docker export --output="latest.tar" red_panda
```

View File

@ -27,22 +27,30 @@ Options:
-q, --quiet Only show numeric IDs -q, --quiet Only show numeric IDs
``` ```
## Examples
To see how the `docker:latest` image was built: To see how the `docker:latest` image was built:
$ docker history docker ```bash
IMAGE CREATED CREATED BY SIZE COMMENT $ docker history docker
3e23a5875458 8 days ago /bin/sh -c #(nop) ENV LC_ALL=C.UTF-8 0 B
8578938dd170 8 days ago /bin/sh -c dpkg-reconfigure locales && loc 1.245 MB IMAGE CREATED CREATED BY SIZE COMMENT
be51b77efb42 8 days ago /bin/sh -c apt-get update && apt-get install 338.3 MB 3e23a5875458 8 days ago /bin/sh -c #(nop) ENV LC_ALL=C.UTF-8 0 B
4b137612be55 6 weeks ago /bin/sh -c #(nop) ADD jessie.tar.xz in / 121 MB 8578938dd170 8 days ago /bin/sh -c dpkg-reconfigure locales && loc 1.245 MB
750d58736b4b 6 weeks ago /bin/sh -c #(nop) MAINTAINER Tianon Gravi <ad 0 B be51b77efb42 8 days ago /bin/sh -c apt-get update && apt-get install 338.3 MB
511136ea3c5a 9 months ago 0 B Imported from - 4b137612be55 6 weeks ago /bin/sh -c #(nop) ADD jessie.tar.xz in / 121 MB
750d58736b4b 6 weeks ago /bin/sh -c #(nop) MAINTAINER Tianon Gravi <ad 0 B
511136ea3c5a 9 months ago 0 B Imported from -
```
To see how the `docker:apache` image was added to a container's base image: To see how the `docker:apache` image was added to a container's base image:
$ docker history docker:scm ```bash
IMAGE CREATED CREATED BY SIZE COMMENT $ docker history docker:scm
2ac9d1098bf1 3 months ago /bin/bash 241.4 MB Added Apache to Fedora base image IMAGE CREATED CREATED BY SIZE COMMENT
88b42ffd1f7c 5 months ago /bin/sh -c #(nop) ADD file:1fd8d7f9f6557cafc7 373.7 MB 2ac9d1098bf1 3 months ago /bin/bash 241.4 MB Added Apache to Fedora base image
c69cab00d6ef 5 months ago /bin/sh -c #(nop) MAINTAINER Lokesh Mandvekar 0 B 88b42ffd1f7c 5 months ago /bin/sh -c #(nop) ADD file:1fd8d7f9f6557cafc7 373.7 MB
511136ea3c5a 19 months ago 0 B Imported from - c69cab00d6ef 5 months ago /bin/sh -c #(nop) MAINTAINER Lokesh Mandvekar 0 B
511136ea3c5a 19 months ago 0 B Imported from -
```

View File

@ -27,12 +27,17 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Remove all dangling images. If `-a` is specified, will also remove all images not referenced by any container. Remove all dangling images. If `-a` is specified, will also remove all images not referenced by any container.
## Examples
Example output: Example output:
```bash ```bash
$ docker image prune -a $ docker image prune -a
WARNING! This will remove all images without at least one container associated to them. WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y Are you sure you want to continue? [y/N] y
Deleted Images: Deleted Images:
@ -63,7 +68,7 @@ deleted: sha256:2c675ee9ed53425e31a13e3390bf3f539bf8637000e4bcfbb85ee03ef4d910a1
Total reclaimed space: 16.43 MB Total reclaimed space: 16.43 MB
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -85,7 +90,9 @@ seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a
fraction of a second no more than nine digits long. fraction of a second no more than nine digits long.
The following removes images created before `2017-01-04T00:00:00`: The following removes images created before `2017-01-04T00:00:00`:
```bash ```bash
{% raw %}
$ docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}\t{{.Size}}' $ docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}\t{{.Size}}'
REPOSITORY TAG IMAGE ID CREATED AT SIZE REPOSITORY TAG IMAGE ID CREATED AT SIZE
foo latest 2f287ac753da 2017-01-04 13:42:23 -0800 PST 3.98 MB foo latest 2f287ac753da 2017-01-04 13:42:23 -0800 PST 3.98 MB
@ -93,6 +100,7 @@ alpine latest 88e169ea8f46 2016-12-27 10:17:25
busybox latest e02e811dd08f 2016-10-07 14:03:58 -0700 PDT 1.09 MB busybox latest e02e811dd08f 2016-10-07 14:03:58 -0700 PDT 1.09 MB
$ docker image prune -a --force --filter "until=2017-01-04T00:00:00" $ docker image prune -a --force --filter "until=2017-01-04T00:00:00"
Deleted Images: Deleted Images:
untagged: alpine:latest untagged: alpine:latest
untagged: alpine@sha256:dfbd4a3a8ebca874ebd2474f044a0b33600d4523d03b0df76e5c5986cb02d7e8 untagged: alpine@sha256:dfbd4a3a8ebca874ebd2474f044a0b33600d4523d03b0df76e5c5986cb02d7e8
@ -104,13 +112,17 @@ deleted: sha256:e88b3f82283bc59d5e0df427c824e9f95557e661fcb0ea15fb0fb6f97760f9d9
Total reclaimed space: 1.093 MB Total reclaimed space: 1.093 MB
$ docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}\t{{.Size}}' $ docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}\t{{.Size}}'
REPOSITORY TAG IMAGE ID CREATED AT SIZE REPOSITORY TAG IMAGE ID CREATED AT SIZE
foo latest 2f287ac753da 2017-01-04 13:42:23 -0800 PST 3.98 MB foo latest 2f287ac753da 2017-01-04 13:42:23 -0800 PST 3.98 MB
{% endraw %}
``` ```
The following removes images created more than 10 days (`240h`) ago: The following removes images created more than 10 days (`240h`) ago:
```bash ```bash
$ docker images $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE REPOSITORY TAG IMAGE ID CREATED SIZE
foo latest 2f287ac753da 14 seconds ago 3.98 MB foo latest 2f287ac753da 14 seconds ago 3.98 MB
alpine latest 88e169ea8f46 8 days ago 3.98 MB alpine latest 88e169ea8f46 8 days ago 3.98 MB
@ -119,6 +131,7 @@ busybox latest e02e811dd08f 2 months ago
golang 1.7.0 138c2e655421 4 months ago 670 MB golang 1.7.0 138c2e655421 4 months ago 670 MB
$ docker image prune -a --force --filter "until=240h" $ docker image prune -a --force --filter "until=240h"
Deleted Images: Deleted Images:
untagged: golang:1.7.0 untagged: golang:1.7.0
untagged: golang@sha256:6765038c2b8f407fd6e3ecea043b44580c229ccfa2a13f6d85866cf2b4a9628e untagged: golang@sha256:6765038c2b8f407fd6e3ecea043b44580c229ccfa2a13f6d85866cf2b4a9628e
@ -138,13 +151,14 @@ deleted: sha256:f96222d75c5563900bc4dd852179b720a0885de8f7a0619ba0ac76e92542bbc8
Total reclaimed space: 792.6 MB Total reclaimed space: 792.6 MB
$ docker images $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE REPOSITORY TAG IMAGE ID CREATED SIZE
foo latest 2f287ac753da About a minute ago 3.98 MB foo latest 2f287ac753da About a minute ago 3.98 MB
alpine latest 88e169ea8f46 8 days ago 3.98 MB alpine latest 88e169ea8f46 8 days ago 3.98 MB
busybox latest e02e811dd08f 2 months ago 1.09 MB busybox latest e02e811dd08f 2 months ago 1.09 MB
``` ```
## Related information ## Related commands
* [system df](system_df.md) * [system df](system_df.md)
* [container prune](container_prune.md) * [container prune](container_prune.md)

View File

@ -35,6 +35,8 @@ Options:
-q, --quiet Only show numeric IDs -q, --quiet Only show numeric IDs
``` ```
## Description
The default `docker images` will show all top level The default `docker images` will show all top level
images, their repository and tags, and their size. images, their repository and tags, and their size.
@ -51,21 +53,26 @@ An image will be listed more than once if it has multiple repository names
or tags. This single image (identifiable by its matching `IMAGE ID`) or tags. This single image (identifiable by its matching `IMAGE ID`)
uses up the `SIZE` listed only once. uses up the `SIZE` listed only once.
### Listing the most recently created images ## Examples
$ docker images ### List the most recently created images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 77af4d6b9913 19 hours ago 1.089 GB
committ latest b6fa739cedf5 19 hours ago 1.089 GB
<none> <none> 78a85c484f71 19 hours ago 1.089 GB
docker latest 30557a29d5ab 20 hours ago 1.089 GB
<none> <none> 5ed6274db6ce 24 hours ago 1.089 GB
postgres 9 746b819f315e 4 days ago 213.4 MB
postgres 9.3 746b819f315e 4 days ago 213.4 MB
postgres 9.3.5 746b819f315e 4 days ago 213.4 MB
postgres latest 746b819f315e 4 days ago 213.4 MB
### Listing images by name and tag ```bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 77af4d6b9913 19 hours ago 1.089 GB
committ latest b6fa739cedf5 19 hours ago 1.089 GB
<none> <none> 78a85c484f71 19 hours ago 1.089 GB
docker latest 30557a29d5ab 20 hours ago 1.089 GB
<none> <none> 5ed6274db6ce 24 hours ago 1.089 GB
postgres 9 746b819f315e 4 days ago 213.4 MB
postgres 9.3 746b819f315e 4 days ago 213.4 MB
postgres 9.3.5 746b819f315e 4 days ago 213.4 MB
postgres latest 746b819f315e 4 days ago 213.4 MB
```
### List images by name and tag
The `docker images` command takes an optional `[REPOSITORY[:TAG]]` argument The `docker images` command takes an optional `[REPOSITORY[:TAG]]` argument
that restricts the list to images that match the argument. If you specify that restricts the list to images that match the argument. If you specify
@ -74,11 +81,14 @@ given repository.
For example, to list all images in the "java" repository, run this command : For example, to list all images in the "java" repository, run this command :
$ docker images java ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images java
java 8 308e519aac60 6 days ago 824.5 MB
java 7 493d82594c15 3 months ago 656.3 MB REPOSITORY TAG IMAGE ID CREATED SIZE
java latest 2711b1d6f3aa 5 months ago 603.9 MB java 8 308e519aac60 6 days ago 824.5 MB
java 7 493d82594c15 3 months ago 656.3 MB
java latest 2711b1d6f3aa 5 months ago 603.9 MB
```
The `[REPOSITORY[:TAG]]` value must be an "exact match". This means that, for example, The `[REPOSITORY[:TAG]]` value must be an "exact match". This means that, for example,
`docker images jav` does not match the image `java`. `docker images jav` does not match the image `java`.
@ -87,46 +97,57 @@ If both `REPOSITORY` and `TAG` are provided, only images matching that
repository and tag are listed. To find all local images in the "java" repository and tag are listed. To find all local images in the "java"
repository with tag "8" you can use: repository with tag "8" you can use:
$ docker images java:8 ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images java:8
java 8 308e519aac60 6 days ago 824.5 MB
REPOSITORY TAG IMAGE ID CREATED SIZE
java 8 308e519aac60 6 days ago 824.5 MB
```
If nothing matches `REPOSITORY[:TAG]`, the list is empty. If nothing matches `REPOSITORY[:TAG]`, the list is empty.
$ docker images java:0 ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images java:0
## Listing the full length image IDs REPOSITORY TAG IMAGE ID CREATED SIZE
```
$ docker images --no-trunc ### List the full length image IDs
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> sha256:77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182 19 hours ago 1.089 GB
committest latest sha256:b6fa739cedf5ea12a620a439402b6004d057da800f91c7524b5086a5e4749c9f 19 hours ago 1.089 GB
<none> <none> sha256:78a85c484f71509adeaace20e72e941f6bdd2b25b4c75da8693efd9f61a37921 19 hours ago 1.089 GB
docker latest sha256:30557a29d5abc51e5f1d5b472e79b7e296f595abcf19fe6b9199dbbc809c6ff4 20 hours ago 1.089 GB
<none> <none> sha256:0124422dd9f9cf7ef15c0617cda3931ee68346455441d66ab8bdc5b05e9fdce5 20 hours ago 1.089 GB
<none> <none> sha256:18ad6fad340262ac2a636efd98a6d1f0ea775ae3d45240d3418466495a19a81b 22 hours ago 1.082 GB
<none> <none> sha256:f9f1e26352f0a3ba6a0ff68167559f64f3e21ff7ada60366e2d44a04befd1d3a 23 hours ago 1.089 GB
tryout latest sha256:2629d1fa0b81b222fca63371ca16cbf6a0772d07759ff80e8d1369b926940074 23 hours ago 131.5 MB
<none> <none> sha256:5ed6274db6ceb2397844896966ea239290555e74ef307030ebb01ff91b1914df 24 hours ago 1.089 GB
## Listing image digests ```bash
$ docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> sha256:77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182 19 hours ago 1.089 GB
committest latest sha256:b6fa739cedf5ea12a620a439402b6004d057da800f91c7524b5086a5e4749c9f 19 hours ago 1.089 GB
<none> <none> sha256:78a85c484f71509adeaace20e72e941f6bdd2b25b4c75da8693efd9f61a37921 19 hours ago 1.089 GB
docker latest sha256:30557a29d5abc51e5f1d5b472e79b7e296f595abcf19fe6b9199dbbc809c6ff4 20 hours ago 1.089 GB
<none> <none> sha256:0124422dd9f9cf7ef15c0617cda3931ee68346455441d66ab8bdc5b05e9fdce5 20 hours ago 1.089 GB
<none> <none> sha256:18ad6fad340262ac2a636efd98a6d1f0ea775ae3d45240d3418466495a19a81b 22 hours ago 1.082 GB
<none> <none> sha256:f9f1e26352f0a3ba6a0ff68167559f64f3e21ff7ada60366e2d44a04befd1d3a 23 hours ago 1.089 GB
tryout latest sha256:2629d1fa0b81b222fca63371ca16cbf6a0772d07759ff80e8d1369b926940074 23 hours ago 131.5 MB
<none> <none> sha256:5ed6274db6ceb2397844896966ea239290555e74ef307030ebb01ff91b1914df 24 hours ago 1.089 GB
```
### List image digests
Images that use the v2 or later format have a content-addressable identifier Images that use the v2 or later format have a content-addressable identifier
called a `digest`. As long as the input used to generate the image is called a `digest`. As long as the input used to generate the image is
unchanged, the digest value is predictable. To list image digest values, use unchanged, the digest value is predictable. To list image digest values, use
the `--digests` flag: the `--digests` flag:
$ docker images --digests ```bash
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE $ docker images --digests
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536 9 weeks ago 2.43 MB REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536 9 weeks ago 2.43 MB
```
When pushing or pulling to a 2.0 registry, the `push` or `pull` command When pushing or pulling to a 2.0 registry, the `push` or `pull` command
output includes the image digest. You can `pull` using a digest value. You can output includes the image digest. You can `pull` using a digest value. You can
also reference by digest in `create`, `run`, and `rmi` commands, as well as the also reference by digest in `create`, `run`, and `rmi` commands, as well as the
`FROM` image reference in a Dockerfile. `FROM` image reference in a Dockerfile.
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -138,133 +159,147 @@ The currently supported filters are:
* before (`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`) - filter images created before given id or references * before (`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`) - filter images created before given id or references
* since (`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`) - filter images created since given id or references * since (`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`) - filter images created since given id or references
##### Untagged images (dangling) #### Show untagged images (dangling)
$ docker images --filter "dangling=true" ```bash
$ docker images --filter "dangling=true"
REPOSITORY TAG IMAGE ID CREATED SIZE REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 8abc22fbb042 4 weeks ago 0 B <none> <none> 8abc22fbb042 4 weeks ago 0 B
<none> <none> 48e5f45168b9 4 weeks ago 2.489 MB <none> <none> 48e5f45168b9 4 weeks ago 2.489 MB
<none> <none> bf747efa0e2f 4 weeks ago 0 B <none> <none> bf747efa0e2f 4 weeks ago 0 B
<none> <none> 980fe10e5736 12 weeks ago 101.4 MB <none> <none> 980fe10e5736 12 weeks ago 101.4 MB
<none> <none> dea752e4e117 12 weeks ago 101.4 MB <none> <none> dea752e4e117 12 weeks ago 101.4 MB
<none> <none> 511136ea3c5a 8 months ago 0 B <none> <none> 511136ea3c5a 8 months ago 0 B
```
This will display untagged images, that are the leaves of the images tree (not This will display untagged images that are the leaves of the images tree (not
intermediary layers). These images occur when a new build of an image takes the intermediary layers). These images occur when a new build of an image takes the
`repo:tag` away from the image ID, leaving it as `<none>:<none>` or untagged. `repo:tag` away from the image ID, leaving it as `<none>:<none>` or untagged.
A warning will be issued if trying to remove an image when a container is presently A warning will be issued if trying to remove an image when a container is presently
using it. By having this flag it allows for batch cleanup. using it. By having this flag it allows for batch cleanup.
Ready for use by `docker rmi ...`, like: You can use this in conjunction with `docker rmi ...`:
$ docker rmi $(docker images -f "dangling=true" -q) ```bash
$ docker rmi $(docker images -f "dangling=true" -q)
8abc22fbb042 8abc22fbb042
48e5f45168b9 48e5f45168b9
bf747efa0e2f bf747efa0e2f
980fe10e5736 980fe10e5736
dea752e4e117 dea752e4e117
511136ea3c5a 511136ea3c5a
```
NOTE: Docker will warn you if any containers exist that are using these untagged images. > **Note**: Docker warns you if any containers exist that are using these
> untagged images.
##### Labeled images #### Show images with a given label
The `label` filter matches images based on the presence of a `label` alone or a `label` and a The `label` filter matches images based on the presence of a `label` alone or a `label` and a
value. value.
The following filter matches images with the `com.example.version` label regardless of its value. The following filter matches images with the `com.example.version` label regardless of its value.
$ docker images --filter "label=com.example.version" ```bash
$ docker images --filter "label=com.example.version"
REPOSITORY TAG IMAGE ID CREATED SIZE REPOSITORY TAG IMAGE ID CREATED SIZE
match-me-1 latest eeae25ada2aa About a minute ago 188.3 MB match-me-1 latest eeae25ada2aa About a minute ago 188.3 MB
match-me-2 latest dea752e4e117 About a minute ago 188.3 MB match-me-2 latest dea752e4e117 About a minute ago 188.3 MB
```
The following filter matches images with the `com.example.version` label with the `1.0` value. The following filter matches images with the `com.example.version` label with the `1.0` value.
$ docker images --filter "label=com.example.version=1.0" ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images --filter "label=com.example.version=1.0"
match-me latest 511136ea3c5a About a minute ago 188.3 MB
REPOSITORY TAG IMAGE ID CREATED SIZE
match-me latest 511136ea3c5a About a minute ago 188.3 MB
```
In this example, with the `0.1` value, it returns an empty set because no matches were found. In this example, with the `0.1` value, it returns an empty set because no matches were found.
$ docker images --filter "label=com.example.version=0.1" ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images --filter "label=com.example.version=0.1"
REPOSITORY TAG IMAGE ID CREATED SIZE
```
#### Before #### Filter images by time
The `before` filter shows only images created before the image with The `before` filter shows only images created before the image with
given id or reference. For example, having these images: given id or reference. For example, having these images:
$ docker images ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images
image1 latest eeae25ada2aa 4 minutes ago 188.3 MB
image2 latest dea752e4e117 9 minutes ago 188.3 MB REPOSITORY TAG IMAGE ID CREATED SIZE
image3 latest 511136ea3c5a 25 minutes ago 188.3 MB image1 latest eeae25ada2aa 4 minutes ago 188.3 MB
image2 latest dea752e4e117 9 minutes ago 188.3 MB
image3 latest 511136ea3c5a 25 minutes ago 188.3 MB
```
Filtering with `before` would give: Filtering with `before` would give:
$ docker images --filter "before=image1" ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images --filter "before=image1"
image2 latest dea752e4e117 9 minutes ago 188.3 MB
image3 latest 511136ea3c5a 25 minutes ago 188.3 MB
#### Since REPOSITORY TAG IMAGE ID CREATED SIZE
image2 latest dea752e4e117 9 minutes ago 188.3 MB
The `since` filter shows only images created after the image with image3 latest 511136ea3c5a 25 minutes ago 188.3 MB
given id or reference. For example, having these images: ```
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
image1 latest eeae25ada2aa 4 minutes ago 188.3 MB
image2 latest dea752e4e117 9 minutes ago 188.3 MB
image3 latest 511136ea3c5a 25 minutes ago 188.3 MB
Filtering with `since` would give: Filtering with `since` would give:
$ docker images --filter "since=image3" ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images --filter "since=image3"
image1 latest eeae25ada2aa 4 minutes ago 188.3 MB REPOSITORY TAG IMAGE ID CREATED SIZE
image2 latest dea752e4e117 9 minutes ago 188.3 MB image1 latest eeae25ada2aa 4 minutes ago 188.3 MB
image2 latest dea752e4e117 9 minutes ago 188.3 MB
```
#### Reference #### Filter images by reference
The `reference` filter shows only images whose reference matches The `reference` filter shows only images whose reference matches
the specified pattern. the specified pattern.
```bash
$ docker images $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest e02e811dd08f 5 weeks ago 1.09 MB busybox latest e02e811dd08f 5 weeks ago 1.09 MB
busybox uclibc e02e811dd08f 5 weeks ago 1.09 MB busybox uclibc e02e811dd08f 5 weeks ago 1.09 MB
busybox musl 733eb3059dce 5 weeks ago 1.21 MB busybox musl 733eb3059dce 5 weeks ago 1.21 MB
busybox glibc 21c16b6787c6 5 weeks ago 4.19 MB busybox glibc 21c16b6787c6 5 weeks ago 4.19 MB
```
Filtering with `reference` would give: Filtering with `reference` would give:
```bash
$ docker images --filter=reference='busy*:*libc' $ docker images --filter=reference='busy*:*libc'
REPOSITORY TAG IMAGE ID CREATED SIZE REPOSITORY TAG IMAGE ID CREATED SIZE
busybox uclibc e02e811dd08f 5 weeks ago 1.09 MB busybox uclibc e02e811dd08f 5 weeks ago 1.09 MB
busybox glibc 21c16b6787c6 5 weeks ago 4.19 MB busybox glibc 21c16b6787c6 5 weeks ago 4.19 MB
```
## Formatting ### Format the output
The formatting option (`--format`) will pretty print container output The formatting option (`--format`) will pretty print container output
using a Go template. using a Go template.
Valid placeholders for the Go template are listed below: Valid placeholders for the Go template are listed below:
Placeholder | Description | Placeholder | Description|
---- | ---- | ---- | ---- |
`.ID` | Image ID | `.ID` | Image ID |
`.Repository` | Image repository | `.Repository` | Image repository |
`.Tag` | Image tag | `.Tag` | Image tag |
`.Digest` | Image digest | `.Digest` | Image digest |
`.CreatedSince` | Elapsed time since the image was created | `.CreatedSince` | Elapsed time since the image was created |
`.CreatedAt` | Time when the image was created | `.CreatedAt` | Time when the image was created |
`.Size` | Image disk size | `.Size` | Image disk size |
When using the `--format` option, the `image` command will either When using the `--format` option, the `image` command will either
output the data exactly as the template declares or, when using the output the data exactly as the template declares or, when using the
@ -273,32 +308,38 @@ output the data exactly as the template declares or, when using the
The following example uses a template without headers and outputs the The following example uses a template without headers and outputs the
`ID` and `Repository` entries separated by a colon for all images: `ID` and `Repository` entries separated by a colon for all images:
{% raw %} ```bash
$ docker images --format "{{.ID}}: {{.Repository}}" {% raw %}
77af4d6b9913: <none> $ docker images --format "{{.ID}}: {{.Repository}}"
b6fa739cedf5: committ
78a85c484f71: <none> 77af4d6b9913: <none>
30557a29d5ab: docker b6fa739cedf5: committ
5ed6274db6ce: <none> 78a85c484f71: <none>
746b819f315e: postgres 30557a29d5ab: docker
746b819f315e: postgres 5ed6274db6ce: <none>
746b819f315e: postgres 746b819f315e: postgres
746b819f315e: postgres 746b819f315e: postgres
{% endraw %} 746b819f315e: postgres
746b819f315e: postgres
{% endraw %}
```
To list all images with their repository and tag in a table format you To list all images with their repository and tag in a table format you
can use: can use:
{% raw %} ```bash
$ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" {% raw %}
IMAGE ID REPOSITORY TAG $ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
77af4d6b9913 <none> <none>
b6fa739cedf5 committ latest IMAGE ID REPOSITORY TAG
78a85c484f71 <none> <none> 77af4d6b9913 <none> <none>
30557a29d5ab docker latest b6fa739cedf5 committ latest
5ed6274db6ce <none> <none> 78a85c484f71 <none> <none>
746b819f315e postgres 9 30557a29d5ab docker latest
746b819f315e postgres 9.3 5ed6274db6ce <none> <none>
746b819f315e postgres 9.3.5 746b819f315e postgres 9
746b819f315e postgres latest 746b819f315e postgres 9.3
{% endraw %} 746b819f315e postgres 9.3.5
746b819f315e postgres latest
{% endraw %}
```

View File

@ -26,6 +26,8 @@ Options:
-m, --message string Set commit message for imported image -m, --message string Set commit message for imported image
``` ```
## Description
You can specify a `URL` or `-` (dash) to take data directly from `STDIN`. The You can specify a `URL` or `-` (dash) to take data directly from `STDIN`. The
`URL` can point to an archive (.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz) `URL` can point to an archive (.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz)
containing a filesystem or to an individual file on the Docker host. If you containing a filesystem or to an individual file on the Docker host. If you
@ -41,33 +43,45 @@ Supported `Dockerfile` instructions:
## Examples ## Examples
**Import from a remote location:** ### Import from a remote location
This will create a new untagged image. This will create a new untagged image.
$ docker import http://example.com/exampleimage.tgz ```bash
$ docker import http://example.com/exampleimage.tgz
```
**Import from a local file:** ### Import from a local file
Import to docker via pipe and `STDIN`. - Import to docker via pipe and `STDIN`.
$ cat exampleimage.tgz | docker import - exampleimagelocal:new ```bash
$ cat exampleimage.tgz | docker import - exampleimagelocal:new
```
Import with a commit message. - Import with a commit message.
$ cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new ```bash
$ cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new
```
Import to docker from a local archive. - Import to docker from a local archive.
```bash
$ docker import /path/to/exampleimage.tgz $ docker import /path/to/exampleimage.tgz
```
**Import from a local directory:** ### Import from a local directory
$ sudo tar -c . | docker import - exampleimagedir ```bash
$ sudo tar -c . | docker import - exampleimagedir
```
**Import from a local directory with new configurations:** ### Import from a local directory with new configurations
$ sudo tar -c . | docker import --change "ENV DEBUG true" - exampleimagedir ```bash
$ sudo tar -c . | docker import --change "ENV DEBUG true" - exampleimagedir
```
Note the `sudo` in this example you must preserve Note the `sudo` in this example you must preserve
the ownership of the files (especially root ownership) during the the ownership of the files (especially root ownership) during the

View File

@ -25,6 +25,8 @@ You start the Docker daemon with the command line. How you start the daemon
affects your Docker containers. For that reason you should also make sure to affects your Docker containers. For that reason you should also make sure to
read the [`dockerd`](dockerd.md) reference page. read the [`dockerd`](dockerd.md) reference page.
## Commands by object
### Docker management commands ### Docker management commands
| Command | Description | | Command | Description |
@ -123,7 +125,7 @@ read the [`dockerd`](dockerd.md) reference page.
| [node rm](node_rm.md) | Remove one or more nodes from the swarm | | [node rm](node_rm.md) | Remove one or more nodes from the swarm |
| [node update](node_update.md) | Update attributes for a node | | [node update](node_update.md) | Update attributes for a node |
### Swarm swarm commands ### Swarm management commands
| Command | Description | | Command | Description |
|:--------|:-------------------------------------------------------------------| |:--------|:-------------------------------------------------------------------|

View File

@ -25,6 +25,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
This command displays system wide information regarding the Docker installation. This command displays system wide information regarding the Docker installation.
Information displayed includes the kernel version, number of containers and images. Information displayed includes the kernel version, number of containers and images.
The number of images shown is the number of unique images. The same image tagged The number of images shown is the number of unique images. The same image tagged
@ -43,182 +45,201 @@ meta data regarding those images are stored. When run for the first time Docker
allocates a certain amount of data space and meta data space from the space allocates a certain amount of data space and meta data space from the space
available on the volume where `/var/lib/docker` is mounted. available on the volume where `/var/lib/docker` is mounted.
# Examples ## Examples
## Display Docker system information ### Show output
The example below shows the output for a daemon running on Red Hat Enterprise Linux,
using the `devicemapper` storage driver. As can be seen in the output, additional
information about the `devicemapper` storage driver is shown:
```bash
$ docker info
Containers: 14
Running: 3
Paused: 1
Stopped: 10
Images: 52
Server Version: 1.10.3
Storage Driver: devicemapper
Pool Name: docker-202:2-25583803-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 1.68 GB
Data Space Total: 107.4 GB
Data Space Available: 7.548 GB
Metadata Space Used: 2.322 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.145 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2015-12-01)
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: null host bridge
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 991.7 MiB
Name: ip-172-30-0-91.ec2.internal
ID: I54V:OLXT:HVMM:TPKO:JPHQ:CQCD:JNLC:O3BZ:4ZVJ:43XJ:PFHZ:6N2S
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Username: gordontheturtle
Registry: https://index.docker.io/v1/
Insecure registries:
myinsecurehost:5000
127.0.0.0/8
```
### Show debugging output
Here is a sample output for a daemon running on Ubuntu, using the overlay2 Here is a sample output for a daemon running on Ubuntu, using the overlay2
storage driver and a node that is part of a 2-node swarm: storage driver and a node that is part of a 2-node swarm:
$ docker -D info ```bash
Containers: 14 $ docker -D info
Running: 3
Paused: 1
Stopped: 10
Images: 52
Server Version: 1.13.0
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: active
NodeID: rdjq45w1op418waxlairloqbm
Is Manager: true
ClusterID: te8kdyw33n36fqiz74bfjeixd
Managers: 1
Nodes: 2
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: 172.16.66.128 172.16.66.129
Manager Addresses:
172.16.66.128:2477
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 8517738ba4b82aff5662c97ca4627e7e4d03b531
runc version: ac031b5bf1cc92239461125f4c1ffb760522bbf2
init version: N/A (expected: v0.13.0)
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-31-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.937 GiB
Name: ubuntu
ID: H52R:7ZR6:EIIA:76JG:ORIY:BVKF:GSFU:HNPG:B5MK:APSC:SZ3Q:N326
Docker Root Dir: /var/lib/docker
Debug Mode (client): true
Debug Mode (server): true
File Descriptors: 30
Goroutines: 123
System Time: 2016-11-12T17:24:37.955404361-08:00
EventsListeners: 0
Http Proxy: http://test:test@proxy.example.com:8080
Https Proxy: https://test:test@proxy.example.com:8080
No Proxy: localhost,127.0.0.1,docker-registry.somecorporation.com
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Labels:
storage=ssd
staging=true
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
http://192.168.1.2/
http://registry-mirror.example.com:5000/
Live Restore Enabled: false
The global `-D` option tells all `docker` commands to output debug information. Containers: 14
Running: 3
Paused: 1
Stopped: 10
Images: 52
Server Version: 1.13.0
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: active
NodeID: rdjq45w1op418waxlairloqbm
Is Manager: true
ClusterID: te8kdyw33n36fqiz74bfjeixd
Managers: 1
Nodes: 2
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: 172.16.66.128 172.16.66.129
Manager Addresses:
172.16.66.128:2477
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 8517738ba4b82aff5662c97ca4627e7e4d03b531
runc version: ac031b5bf1cc92239461125f4c1ffb760522bbf2
init version: N/A (expected: v0.13.0)
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-31-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.937 GiB
Name: ubuntu
ID: H52R:7ZR6:EIIA:76JG:ORIY:BVKF:GSFU:HNPG:B5MK:APSC:SZ3Q:N326
Docker Root Dir: /var/lib/docker
Debug Mode (client): true
Debug Mode (server): true
File Descriptors: 30
Goroutines: 123
System Time: 2016-11-12T17:24:37.955404361-08:00
EventsListeners: 0
Http Proxy: http://test:test@proxy.example.com:8080
Https Proxy: https://test:test@proxy.example.com:8080
No Proxy: localhost,127.0.0.1,docker-registry.somecorporation.com
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Labels:
storage=ssd
staging=true
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
http://192.168.1.2/
http://registry-mirror.example.com:5000/
Live Restore Enabled: false
```
The example below shows the output for a daemon running on Red Hat Enterprise Linux, The global `-D` option causes all `docker` commands to output debug information.
using the devicemapper storage driver. As can be seen in the output, additional
information about the devicemapper storage driver is shown:
$ docker info ### Format the output
Containers: 14
Running: 3
Paused: 1
Stopped: 10
Images: 52
Server Version: 1.10.3
Storage Driver: devicemapper
Pool Name: docker-202:2-25583803-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 1.68 GB
Data Space Total: 107.4 GB
Data Space Available: 7.548 GB
Metadata Space Used: 2.322 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.145 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2015-12-01)
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: null host bridge
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 991.7 MiB
Name: ip-172-30-0-91.ec2.internal
ID: I54V:OLXT:HVMM:TPKO:JPHQ:CQCD:JNLC:O3BZ:4ZVJ:43XJ:PFHZ:6N2S
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Username: gordontheturtle
Registry: https://index.docker.io/v1/
Insecure registries:
myinsecurehost:5000
127.0.0.0/8
You can also specify the output format: You can also specify the output format:
$ docker info --format '{{json .}}' ```bash
{"ID":"I54V:OLXT:HVMM:TPKO:JPHQ:CQCD:JNLC:O3BZ:4ZVJ:43XJ:PFHZ:6N2S","Containers":14, ...} {% raw %}
$ docker info --format '{{json .}}'
{"ID":"I54V:OLXT:HVMM:TPKO:JPHQ:CQCD:JNLC:O3BZ:4ZVJ:43XJ:PFHZ:6N2S","Containers":14, ...}
```
### Run `docker info` on Windows
Here is a sample output for a daemon running on Windows Server 2016: Here is a sample output for a daemon running on Windows Server 2016:
E:\docker>docker info ```none
Containers: 1 E:\docker>docker info
Running: 0
Paused: 0 Containers: 1
Stopped: 1 Running: 0
Images: 17 Paused: 0
Server Version: 1.13.0 Stopped: 1
Storage Driver: windowsfilter Images: 17
Windows: Server Version: 1.13.0
Logging Driver: json-file Storage Driver: windowsfilter
Plugins: Windows:
Volume: local Logging Driver: json-file
Network: nat null overlay Plugins:
Swarm: inactive Volume: local
Default Isolation: process Network: nat null overlay
Kernel Version: 10.0 14393 (14393.206.amd64fre.rs1_release.160912-1937) Swarm: inactive
Operating System: Windows Server 2016 Datacenter Default Isolation: process
OSType: windows Kernel Version: 10.0 14393 (14393.206.amd64fre.rs1_release.160912-1937)
Architecture: x86_64 Operating System: Windows Server 2016 Datacenter
CPUs: 8 OSType: windows
Total Memory: 3.999 GiB Architecture: x86_64
Name: WIN-V0V70C0LU5P CPUs: 8
ID: NYMS:B5VK:UMSL:FVDZ:EWB5:FKVK:LPFL:FJMQ:H6FT:BZJ6:L2TD:XH62 Total Memory: 3.999 GiB
Docker Root Dir: C:\control Name: WIN-V0V70C0LU5P
Debug Mode (client): false ID: NYMS:B5VK:UMSL:FVDZ:EWB5:FKVK:LPFL:FJMQ:H6FT:BZJ6:L2TD:XH62
Debug Mode (server): false Docker Root Dir: C:\control
Registry: https://index.docker.io/v1/ Debug Mode (client): false
Insecure Registries: Debug Mode (server): false
127.0.0.0/8 Registry: https://index.docker.io/v1/
Registry Mirrors: Insecure Registries:
http://192.168.1.2/ 127.0.0.0/8
http://registry-mirror.example.com:5000/ Registry Mirrors:
Live Restore Enabled: false http://192.168.1.2/
http://registry-mirror.example.com:5000/
Live Restore Enabled: false
```

View File

@ -28,7 +28,9 @@ Options:
--type Return JSON for specified type --type Return JSON for specified type
``` ```
By default, this will render all results in a JSON array. If the container and ## Description
By default, `docker inspect` will render all results in a JSON array. If the container and
image have the same name, this will return container JSON for unspecified type. image have the same name, this will return container JSON for unspecified type.
If a format is specified, the given template will be executed for each result. If a format is specified, the given template will be executed for each result.
@ -37,46 +39,53 @@ describes all the details of the format.
## Examples ## Examples
**Get an instance's IP address:** ### Get an instance's IP address
For the most part, you can pick out any field from the JSON in a fairly For the most part, you can pick out any field from the JSON in a fairly
straightforward manner. straightforward manner.
{% raw %} ```bash
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID {% raw %}
{% endraw %} $ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
{% endraw %}
```
**Get an instance's MAC address:** ### Get an instance's MAC address
For the most part, you can pick out any field from the JSON in a fairly ```bash
straightforward manner. {% raw %}
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
{% endraw %}
```
{% raw %} ### Get an instance's log path
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
{% endraw %}
**Get an instance's log path:** ```bash
{% raw %}
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
{% endraw %}
```
{% raw %} ### Get an instance's image name
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
{% endraw %}
**Get a Task's image name:** ```bash
{% raw %}
$ docker inspect --format='{{.Container.Spec.Image}}' $INSTANCE_ID
{% endraw %}
```
{% raw %} ### List all port bindings
$ docker inspect --format='{{.Container.Spec.Image}}' $INSTANCE_ID
{% endraw %}
**List all port bindings:** You can loop over arrays and maps in the results to produce simple text
One can loop over arrays and maps in the results to produce simple text
output: output:
{% raw %} ```bash
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID {% raw %}
{% endraw %} $ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID
{% endraw %}
```
**Find a specific port mapping:** ### Find a specific port mapping
The `.Field` syntax doesn't work when the field name begins with a The `.Field` syntax doesn't work when the field name begins with a
number, but the template language's `index` function does. The number, but the template language's `index` function does. The
@ -86,17 +95,21 @@ numeric public port, you use `index` to find the specific port map, and
then `index` 0 contains the first object inside of that. Then we ask for then `index` 0 contains the first object inside of that. Then we ask for
the `HostPort` field to get the public address. the `HostPort` field to get the public address.
{% raw %} ```bash
$ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID {% raw %}
{% endraw %} $ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
{% endraw %}
```
**Get a subsection in JSON format:** ### Get a subsection in JSON format
If you request a field which is itself a structure containing other If you request a field which is itself a structure containing other
fields, by default you get a Go-style dump of the inner values. fields, by default you get a Go-style dump of the inner values.
Docker adds a template function, `json`, which can be applied to get Docker adds a template function, `json`, which can be applied to get
results in JSON format. results in JSON format.
{% raw %} ```bash
$ docker inspect --format='{{json .Config}}' $INSTANCE_ID {% raw %}
{% endraw %} $ docker inspect --format='{{json .Config}}' $INSTANCE_ID
{% endraw %}
```

View File

@ -25,10 +25,11 @@ Options:
-s, --signal string Signal to send to the container (default "KILL") -s, --signal string Signal to send to the container (default "KILL")
``` ```
## Description
The main process inside the container will be sent `SIGKILL`, or any The main process inside the container will be sent `SIGKILL`, or any
signal specified with option `--signal`. signal specified with option `--signal`.
> **Note:** > **Note**: `ENTRYPOINT` and `CMD` in the *shell* form run as a subcommand of
> `ENTRYPOINT` and `CMD` in the *shell* form run as a subcommand of `/bin/sh -c`, > `/bin/sh -c`, which does not pass signals. This means that the executable is
> which does not pass signals. This means that the executable is not the containers PID 1 > not the containers PID 1 and does not receive Unix signals.
> and does not receive Unix signals.

View File

@ -26,28 +26,37 @@ Options:
The tarball may be compressed with gzip, bzip, or xz The tarball may be compressed with gzip, bzip, or xz
-q, --quiet Suppress the load output but still outputs the imported images -q, --quiet Suppress the load output but still outputs the imported images
``` ```
## Descriptino
Loads a tarred repository from a file or the standard input stream. `docker load` loads a tarred repository from a file or the standard input stream.
Restores both images and tags. It restores both images and tags.
$ docker images ## Examples
REPOSITORY TAG IMAGE ID CREATED SIZE
$ docker load < busybox.tar.gz ```bash
# […] $ docker images
Loaded image: busybox:latest
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 769b9341d937 7 weeks ago 2.489 MB $ docker load < busybox.tar.gz
$ docker load --input fedora.tar
# […] Loaded image: busybox:latest
Loaded image: fedora:rawhide $ docker images
# […] REPOSITORY TAG IMAGE ID CREATED SIZE
Loaded image: fedora:20 busybox latest 769b9341d937 7 weeks ago 2.489 MB
# […]
$ docker images $ docker load --input fedora.tar
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 769b9341d937 7 weeks ago 2.489 MB Loaded image: fedora:rawhide
fedora rawhide 0d20aec6529d 7 weeks ago 387 MB
fedora 20 58394af37342 7 weeks ago 385.5 MB Loaded image: fedora:20
fedora heisenbug 58394af37342 7 weeks ago 385.5 MB
fedora latest 58394af37342 7 weeks ago 385.5 MB $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 769b9341d937 7 weeks ago 2.489 MB
fedora rawhide 0d20aec6529d 7 weeks ago 387 MB
fedora 20 58394af37342 7 weeks ago 385.5 MB
fedora heisenbug 58394af37342 7 weeks ago 385.5 MB
fedora latest 58394af37342 7 weeks ago 385.5 MB
```

View File

@ -27,12 +27,20 @@ Options:
-u, --username string Username -u, --username string Username
``` ```
## Description
Login to a registry.
### Login to a self-hosted registry
If you want to login to a self-hosted registry you can specify this by If you want to login to a self-hosted registry you can specify this by
adding the server name. adding the server name.
example: ```bash
$ docker login localhost:8080 $ docker login localhost:8080
```
### Privileged user requirement
`docker login` requires user to use `sudo` or be `root`, except when: `docker login` requires user to use `sudo` or be `root`, except when:
@ -43,7 +51,7 @@ You can log into any public or private repository for which you have
credentials. When you log in, the command stores encoded credentials in credentials. When you log in, the command stores encoded credentials in
`$HOME/.docker/config.json` on Linux or `%USERPROFILE%/.docker/config.json` on Windows. `$HOME/.docker/config.json` on Linux or `%USERPROFILE%/.docker/config.json` on Windows.
## Credentials store ### Credentials store
The Docker Engine can keep user credentials in an external credentials store, The Docker Engine can keep user credentials in an external credentials store,
such as the native keychain of the operating system. Using an external store such as the native keychain of the operating system. Using an external store
@ -60,8 +68,6 @@ you can download them from:
- Apple macOS keychain: https://github.com/docker/docker-credential-helpers/releases - Apple macOS keychain: https://github.com/docker/docker-credential-helpers/releases
- Microsoft Windows Credential Manager: https://github.com/docker/docker-credential-helpers/releases - Microsoft Windows Credential Manager: https://github.com/docker/docker-credential-helpers/releases
### Usage
You need to specify the credentials store in `$HOME/.docker/config.json` You need to specify the credentials store in `$HOME/.docker/config.json`
to tell the docker engine to use it. The value of the config property should be to tell the docker engine to use it. The value of the config property should be
the suffix of the program to use (i.e. everything after `docker-credential-`). the suffix of the program to use (i.e. everything after `docker-credential-`).
@ -76,7 +82,7 @@ For example, to use `docker-credential-osxkeychain`:
If you are currently logged in, run `docker logout` to remove If you are currently logged in, run `docker logout` to remove
the credentials from the file and run `docker login` again. the credentials from the file and run `docker login` again.
### Protocol ### Credential helper protocol
Credential helpers can be any program or script that follows a very simple protocol. Credential helpers can be any program or script that follows a very simple protocol.
This protocol is heavily inspired by Git, but it differs in the information shared. This protocol is heavily inspired by Git, but it differs in the information shared.
@ -123,14 +129,14 @@ an example of that payload: `https://index.docker.io/v1`.
The `erase` command can write error messages to `STDOUT` that the docker engine The `erase` command can write error messages to `STDOUT` that the docker engine
will show if there was an issue. will show if there was an issue.
## Credential helpers ### Credential helpers
Credential helpers are similar to the credential store above, but act as the Credential helpers are similar to the credential store above, but act as the
designated programs to handle credentials for *specific registries*. The default designated programs to handle credentials for *specific registries*. The default
credential store (`credsStore` or the config file itself) will not be used for credential store (`credsStore` or the config file itself) will not be used for
operations concerning credentials of the specified registries. operations concerning credentials of the specified registries.
### Usage ### Logging out
If you are currently logged in, run `docker logout` to remove If you are currently logged in, run `docker logout` to remove
the credentials from the default store. the credentials from the default store.

View File

@ -25,6 +25,8 @@ Options:
--help Print usage --help Print usage
``` ```
For example: ## Examples
$ docker logout localhost:8080 ```bash
$ docker logout localhost:8080
```

View File

@ -25,10 +25,12 @@ Options:
-f, --follow Follow log output -f, --follow Follow log output
--help Print usage --help Print usage
--since string Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes) --since string Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
--tail string Number of lines to show from the end of the logs (default "all") --tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps -t, --timestamps Show timestamps
``` ```
## Description
The `docker logs` command batch-retrieves logs present at the time of execution. The `docker logs` command batch-retrieves logs present at the time of execution.
> **Note**: this command is only functional for containers that are started with > **Note**: this command is only functional for containers that are started with

View File

@ -1,28 +0,0 @@
---
title: "Command line reference"
description: "Docker's CLI command description and usage"
keywords: "Docker, Docker documentation, CLI, command line"
identifier: "smn_cli"
---
<!-- This file is maintained within the docker/docker Github
repository at https://github.com/docker/docker/. Make all
pull requests against that repo. If you see this file in
another repository, consider it read-only there, as it will
periodically be overwritten by the definitive file. Pull
requests which include edits to this file in other repositories
will be rejected.
-->
# The Docker commands
This section contains reference information on using Docker's command line
client. Each command has a reference page along with samples. If you are
unfamiliar with the command line, you should start by reading about how to
[Use the Docker command line](cli.md).
You start the Docker daemon with the command line. How you start the daemon
affects your Docker containers. For that reason you should also make sure to
read the [`dockerd`](dockerd.md) reference page.
For a list of Docker commands see [Command line reference guide](index.md).

View File

@ -29,38 +29,55 @@ Options:
--link-local-ip value Add a link-local address for the container (default []) --link-local-ip value Add a link-local address for the container (default [])
``` ```
## Description
Connects a container to a network. You can connect a container by name Connects a container to a network. You can connect a container by name
or by ID. Once connected, the container can communicate with other containers in or by ID. Once connected, the container can communicate with other containers in
the same network. the same network.
## Examples
### Connect a running container to a network
```bash ```bash
$ docker network connect multi-host-network container1 $ docker network connect multi-host-network container1
``` ```
### Connect a container to a network when it starts
You can also use the `docker run --network=<network-name>` option to start a container and immediately connect it to a network. You can also use the `docker run --network=<network-name>` option to start a container and immediately connect it to a network.
```bash ```bash
$ docker run -itd --network=multi-host-network busybox $ docker run -itd --network=multi-host-network busybox
``` ```
### Specify the IP address a container will use on a given network
You can specify the IP address you want to be assigned to the container's interface. You can specify the IP address you want to be assigned to the container's interface.
```bash ```bash
$ docker network connect --ip 10.10.36.122 multi-host-network container2 $ docker network connect --ip 10.10.36.122 multi-host-network container2
``` ```
### Use the legacy `--link` option
You can use `--link` option to link another container with a preferred alias You can use `--link` option to link another container with a preferred alias
```bash ```bash
$ docker network connect --link container1:c1 multi-host-network container2 $ docker network connect --link container1:c1 multi-host-network container2
``` ```
### Create a network alias for a container
`--alias` option can be used to resolve the container by another name in the network `--alias` option can be used to resolve the container by another name in the network
being connected to. being connected to.
```bash ```bash
$ docker network connect --alias db --alias mysql multi-host-network container2 $ docker network connect --alias db --alias mysql multi-host-network container2
``` ```
### Network implications of stopping, pausing, or restarting containers
You can pause, restart, and stop containers that are connected to a network. You can pause, restart, and stop containers that are connected to a network.
A container connects to its configured networks when it runs. A container connects to its configured networks when it runs.
@ -88,7 +105,7 @@ network but launched from different Engines can also communicate in this way.
You can connect a container to one or more networks. The networks need not be the same type. For example, you can connect a single container bridge and overlay networks. You can connect a container to one or more networks. The networks need not be the same type. For example, you can connect a single container bridge and overlay networks.
## Related information ## Related commands
* [network inspect](network_inspect.md) * [network inspect](network_inspect.md)
* [network create](network_create.md) * [network create](network_create.md)

View File

@ -38,6 +38,8 @@ Options:
network segment (default []) network segment (default [])
``` ```
## Description
Creates a new network. The `DRIVER` accepts `bridge` or `overlay` which are the Creates a new network. The `DRIVER` accepts `bridge` or `overlay` which are the
built-in network drivers. If you have installed a third party or your own custom built-in network drivers. If you have installed a third party or your own custom
network driver you can specify that `DRIVER` here also. If you don't specify the network driver you can specify that `DRIVER` here also. If you don't specify the
@ -86,7 +88,9 @@ Network names must be unique. The Docker daemon attempts to identify naming
conflicts but this is not guaranteed. It is the user's responsibility to avoid conflicts but this is not guaranteed. It is the user's responsibility to avoid
name conflicts. name conflicts.
## Connect containers ## Examples
### Connect containers
When you start a container, use the `--network` flag to connect it to a network. When you start a container, use the `--network` flag to connect it to a network.
This example adds the `busybox` container to the `mynet` network: This example adds the `busybox` container to the `mynet` network:
@ -107,7 +111,7 @@ Engines can also communicate in this way.
You can disconnect a container from a network using the `docker network You can disconnect a container from a network using the `docker network
disconnect` command. disconnect` command.
## Specifying advanced options ### Specify advanced options
When you create a network, Engine creates a non-overlapping subnetwork for the When you create a network, Engine creates a non-overlapping subnetwork for the
network by default. This subnetwork is not a subdivision of an existing network by default. This subnetwork is not a subdivision of an existing
@ -150,7 +154,7 @@ $ docker network create -d overlay \
Be sure that your subnetworks do not overlap. If they do, the network create Be sure that your subnetworks do not overlap. If they do, the network create
fails and Engine returns an error. fails and Engine returns an error.
# Bridge driver options ### Bridge driver options
When creating a custom network, the default network driver (i.e. `bridge`) has When creating a custom network, the default network driver (i.e. `bridge`) has
additional options that can be passed. The following are those options and the additional options that can be passed. The following are those options and the
@ -191,7 +195,7 @@ connects a bridge network to it to provide external connectivity. If you want
to create an externally isolated `overlay` network, you can specify the to create an externally isolated `overlay` network, you can specify the
`--internal` option. `--internal` option.
## Related information ## Related commands
* [network inspect](network_inspect.md) * [network inspect](network_inspect.md)
* [network connect](network_connect.md) * [network connect](network_connect.md)

View File

@ -25,14 +25,19 @@ Options:
--help Print usage --help Print usage
``` ```
Disconnects a container from a network. The container must be running to disconnect it from the network. ## Description
Disconnects a container from a network. The container must be running to
disconnect it from the network.
## Examples
```bash ```bash
$ docker network disconnect multi-host-network container1 $ docker network disconnect multi-host-network container1
``` ```
## Related information ## Related commands
* [network inspect](network_inspect.md) * [network inspect](network_inspect.md)
* [network connect](network_connect.md) * [network connect](network_connect.md)

View File

@ -25,7 +25,16 @@ Options:
--help Print usage --help Print usage
``` ```
Returns information about one or more networks. By default, this command renders all results in a JSON object. For example, if you connect two containers to the default `bridge` network: ## Description
Returns information about one or more networks. By default, this command renders
all results in a JSON object.
## Examples
## Inspect the `bridge` network
Connect two containers to the default `bridge` network:
```bash ```bash
$ sudo docker run -itd --name=container1 busybox $ sudo docker run -itd --name=container1 busybox
@ -47,8 +56,9 @@ template for each result. Go's
[text/template](http://golang.org/pkg/text/template/) package describes all the [text/template](http://golang.org/pkg/text/template/) package describes all the
details of the format. details of the format.
```bash ```none
$ sudo docker network inspect bridge $ sudo docker network inspect bridge
[ [
{ {
"Name": "bridge", "Name": "bridge",
@ -95,12 +105,19 @@ $ sudo docker network inspect bridge
] ]
``` ```
Returns the information about the user-defined network: ### Inspect a user-defined network
Create and inspect a user-defined network:
```bash ```bash
$ docker network create simple-network $ docker network create simple-network
69568e6336d8c96bbf57869030919f7c69524f71183b44d80948bd3927c87f6a 69568e6336d8c96bbf57869030919f7c69524f71183b44d80948bd3927c87f6a
```
```none
$ docker network inspect simple-network $ docker network inspect simple-network
[ [
{ {
"Name": "simple-network", "Name": "simple-network",
@ -124,12 +141,15 @@ $ docker network inspect simple-network
] ]
``` ```
For swarm mode overlay networks `network inspect` also shows the IP address and node name ### Inspect the `ingress` network
of the peers. Peers are the nodes in the swarm cluster which have at least one task attached
For swarm mode overlay networks `network inspect` also shows the IP address and node name
of the peers. Peers are the nodes in the swarm cluster which have at least one task attached
to the network. Node name is of the format `<hostname>-<unique ID>`. to the network. Node name is of the format `<hostname>-<unique ID>`.
```bash ```none
$ docker network inspect ingress $ docker network inspect ingress
[ [
{ {
"Name": "ingress", "Name": "ingress",
@ -181,7 +201,7 @@ $ docker network inspect ingress
] ]
``` ```
## Related information ## Related commands
* [network disconnect ](network_disconnect.md) * [network disconnect ](network_disconnect.md)
* [network connect](network_connect.md) * [network connect](network_connect.md)

View File

@ -31,8 +31,14 @@ Options:
-q, --quiet Only display network IDs -q, --quiet Only display network IDs
``` ```
## Description
Lists all the networks the Engine `daemon` knows about. This includes the Lists all the networks the Engine `daemon` knows about. This includes the
networks that span across multiple hosts in a cluster, for example: networks that span across multiple hosts in a cluster.
## Examples
### List all networks
```bash ```bash
$ sudo docker network ls $ sudo docker network ls
@ -55,7 +61,7 @@ c288470c46f6c8949c5f7e5099b5b7947b07eabe8d9a27d79a9cbf111adcbf47 host
63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161 dev bridge local 63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161 dev bridge local
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`). is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
@ -175,7 +181,7 @@ $ docker network rm `docker network ls --filter type=custom -q`
A warning will be issued when trying to remove a network that has containers A warning will be issued when trying to remove a network that has containers
attached. attached.
## Formatting ### Formatting
The formatting options (`--format`) pretty-prints networks output The formatting options (`--format`) pretty-prints networks output
using a Go template. using a Go template.
@ -208,7 +214,7 @@ d1584f8dc718: host
391df270dc66: null 391df270dc66: null
``` ```
## Related information ## Related commands
* [network disconnect ](network_disconnect.md) * [network disconnect ](network_disconnect.md)
* [network connect](network_connect.md) * [network connect](network_connect.md)

View File

@ -17,12 +17,16 @@ Options:
--help Print usage --help Print usage
``` ```
Remove all unused networks. Unused networks are those which are not referenced by any containers. ## Description
Example output: Remove all unused networks. Unused networks are those which are not referenced
by any containers.
## Examples
```bash ```bash
$ docker network prune $ docker network prune
WARNING! This will remove all networks not used by at least one container. WARNING! This will remove all networks not used by at least one container.
Are you sure you want to continue? [y/N] y Are you sure you want to continue? [y/N] y
Deleted Networks: Deleted Networks:
@ -30,7 +34,7 @@ n1
n2 n2
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -54,8 +58,9 @@ fraction of a second no more than nine digits long.
The following removes networks created more than 5 minutes ago. Note that The following removes networks created more than 5 minutes ago. Note that
system networks such as `bridge`, `host`, and `none` will never be pruned: system networks such as `bridge`, `host`, and `none` will never be pruned:
```bash ```none
$ docker network ls $ docker network ls
NETWORK ID NAME DRIVER SCOPE NETWORK ID NAME DRIVER SCOPE
7430df902d7a bridge bridge local 7430df902d7a bridge bridge local
ea92373fd499 foo-1-day-ago bridge local ea92373fd499 foo-1-day-ago bridge local
@ -64,10 +69,12 @@ ab53663ed3c7 foo-1-min-ago bridge local
f949d337b1f5 none null local f949d337b1f5 none null local
$ docker network prune --force --filter until=5m $ docker network prune --force --filter until=5m
Deleted Networks: Deleted Networks:
foo-1-day-ago foo-1-day-ago
$ docker network ls $ docker network ls
NETWORK ID NAME DRIVER SCOPE NETWORK ID NAME DRIVER SCOPE
7430df902d7a bridge bridge local 7430df902d7a bridge bridge local
ab53663ed3c7 foo-1-min-ago bridge local ab53663ed3c7 foo-1-min-ago bridge local
@ -75,7 +82,7 @@ ab53663ed3c7 foo-1-min-ago bridge local
f949d337b1f5 none null local f949d337b1f5 none null local
``` ```
## Related information ## Related commands
* [network disconnect ](network_disconnect.md) * [network disconnect ](network_disconnect.md)
* [network connect](network_connect.md) * [network connect](network_connect.md)

View File

@ -27,14 +27,23 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Removes one or more networks by name or identifier. To remove a network, Removes one or more networks by name or identifier. To remove a network,
you must first disconnect any containers connected to it. you must first disconnect any containers connected to it.
## Examples
### Remove a network
To remove the network named 'my-network': To remove the network named 'my-network':
```bash ```bash
$ docker network rm my-network $ docker network rm my-network
``` ```
### Remove multiple networks
To delete multiple networks in a single `docker network rm` command, provide To delete multiple networks in a single `docker network rm` command, provide
multiple network names or ids. The following example deletes a network with id multiple network names or ids. The following example deletes a network with id
`3695c422697f` and a network named `my-network`: `3695c422697f` and a network named `my-network`:
@ -48,7 +57,7 @@ If the deletion of one network fails, the command continues to the next on the
list and tries to delete that. The command reports success or failure for each list and tries to delete that. The command reports success or failure for each
deletion. deletion.
## Related information ## Related commands
* [network disconnect ](network_disconnect.md) * [network disconnect ](network_disconnect.md)
* [network connect](network_connect.md) * [network connect](network_connect.md)

View File

@ -25,14 +25,19 @@ Options:
``` ```
Demotes an existing manager so that it is no longer a manager. This command targets a docker engine that is a manager in the swarm. ## Description
Demotes an existing manager so that it is no longer a manager. This command
targets a docker engine that is a manager in the swarm.
## Examples
```bash ```bash
$ docker node demote <node name> $ docker node demote <node name>
``` ```
## Related information ## Related commands
* [node inspect](node_inspect.md) * [node inspect](node_inspect.md)
* [node ls](node_ls.md) * [node ls](node_ls.md)

View File

@ -26,108 +26,120 @@ Options:
--pretty Print the information in a human friendly format. --pretty Print the information in a human friendly format.
``` ```
## Description
Returns information about a node. By default, this command renders all results Returns information about a node. By default, this command renders all results
in a JSON array. You can specify an alternate format to execute a in a JSON array. You can specify an alternate format to execute a
given template for each result. Go's given template for each result. Go's
[text/template](http://golang.org/pkg/text/template/) package describes all the [text/template](http://golang.org/pkg/text/template/) package describes all the
details of the format. details of the format.
Example output: ## Examples
$ docker node inspect swarm-manager ### Inspect a node
[
{ ```none
"ID": "e216jshn25ckzbvmwlnh5jr3g", $ docker node inspect swarm-manager
"Version": {
"Index": 10 [
{
"ID": "e216jshn25ckzbvmwlnh5jr3g",
"Version": {
"Index": 10
},
"CreatedAt": "2016-06-16T22:52:44.9910662Z",
"UpdatedAt": "2016-06-16T22:52:45.230878043Z",
"Spec": {
"Role": "manager",
"Availability": "active"
},
"Description": {
"Hostname": "swarm-manager",
"Platform": {
"Architecture": "x86_64",
"OS": "linux"
}, },
"CreatedAt": "2016-06-16T22:52:44.9910662Z", "Resources": {
"UpdatedAt": "2016-06-16T22:52:45.230878043Z", "NanoCPUs": 1000000000,
"Spec": { "MemoryBytes": 1039843328
"Role": "manager",
"Availability": "active"
}, },
"Description": { "Engine": {
"Hostname": "swarm-manager", "EngineVersion": "1.12.0",
"Platform": { "Plugins": [
"Architecture": "x86_64", {
"OS": "linux" "Type": "Volume",
}, "Name": "local"
"Resources": { },
"NanoCPUs": 1000000000, {
"MemoryBytes": 1039843328 "Type": "Network",
}, "Name": "overlay"
"Engine": { },
"EngineVersion": "1.12.0", {
"Plugins": [ "Type": "Network",
{ "Name": "null"
"Type": "Volume", },
"Name": "local" {
}, "Type": "Network",
{ "Name": "host"
"Type": "Network", },
"Name": "overlay" {
}, "Type": "Network",
{ "Name": "bridge"
"Type": "Network", },
"Name": "null" {
}, "Type": "Network",
{ "Name": "overlay"
"Type": "Network", }
"Name": "host" ]
},
{
"Type": "Network",
"Name": "bridge"
},
{
"Type": "Network",
"Name": "overlay"
}
]
}
},
"Status": {
"State": "ready",
"Addr": "168.0.32.137"
},
"ManagerStatus": {
"Leader": true,
"Reachability": "reachable",
"Addr": "168.0.32.137:2377"
} }
},
"Status": {
"State": "ready",
"Addr": "168.0.32.137"
},
"ManagerStatus": {
"Leader": true,
"Reachability": "reachable",
"Addr": "168.0.32.137:2377"
} }
] }
]
```
{% raw %} ### Specify an output format
$ docker node inspect --format '{{ .ManagerStatus.Leader }}' self
false
{% endraw %}
$ docker node inspect --pretty self ```none
ID: e216jshn25ckzbvmwlnh5jr3g {% raw %}
Hostname: swarm-manager $ docker node inspect --format '{{ .ManagerStatus.Leader }}' self
Joined at: 2016-06-16 22:52:44.9910662 +0000 utc
Status:
State: Ready
Availability: Active
Address: 172.17.0.2
Manager Status:
Address: 172.17.0.2:2377
Raft Status: Reachable
Leader: Yes
Platform:
Operating System: linux
Architecture: x86_64
Resources:
CPUs: 4
Memory: 7.704 GiB
Plugins:
Network: overlay, bridge, null, host, overlay
Volume: local
Engine Version: 1.12.0
## Related information false
$ docker node inspect --pretty self
ID: e216jshn25ckzbvmwlnh5jr3g
Hostname: swarm-manager
Joined at: 2016-06-16 22:52:44.9910662 +0000 utc
Status:
State: Ready
Availability: Active
Address: 172.17.0.2
Manager Status:
Address: 172.17.0.2:2377
Raft Status: Reachable
Leader: Yes
Platform:
Operating System: linux
Architecture: x86_64
Resources:
CPUs: 4
Memory: 7.704 GiB
Plugins:
Network: overlay, bridge, null, host, overlay
Volume: local
Engine Version: 1.12.0
{% endraw %}
```
## Related commands
* [node demote](node_demote.md) * [node demote](node_demote.md)
* [node ls](node_ls.md) * [node ls](node_ls.md)

View File

@ -29,9 +29,13 @@ Options:
-q, --quiet Only display IDs -q, --quiet Only display IDs
``` ```
Lists all the nodes that the Docker Swarm manager knows about. You can filter using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section for more information about available filter options. ## Description
Example output: Lists all the nodes that the Docker Swarm manager knows about. You can filter
using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section
for more information about available filter options.
## Examples
```bash ```bash
$ docker node ls $ docker node ls
@ -42,7 +46,7 @@ ID HOSTNAME STATUS AVAILABILITY MANAGER STATU
e216jshn25ckzbvmwlnh5jr3g * swarm-manager1 Ready Active Leader e216jshn25ckzbvmwlnh5jr3g * swarm-manager1 Ready Active Leader
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -55,7 +59,7 @@ The currently supported filters are:
* [name](node_ls.md#name) * [name](node_ls.md#name)
* [role](node_ls.md#role) * [role](node_ls.md#role)
#### ID #### id
The `id` filter matches all or part of a node's id. The `id` filter matches all or part of a node's id.
@ -66,7 +70,7 @@ ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0 swarm-worker2 Ready Active 1bcef6utixb0l0ca7gxuivsj0 swarm-worker2 Ready Active
``` ```
#### Label #### label
The `label` filter matches nodes based on engine labels and on the presence of a `label` alone or a `label` and a value. Node labels are currently not used for filtering. The `label` filter matches nodes based on engine labels and on the presence of a `label` alone or a `label` and a value. Node labels are currently not used for filtering.
@ -79,7 +83,7 @@ ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0 swarm-worker2 Ready Active 1bcef6utixb0l0ca7gxuivsj0 swarm-worker2 Ready Active
``` ```
#### Membership #### membersip
The `membership` filter matches nodes based on the presence of a `membership` and a value The `membership` filter matches nodes based on the presence of a `membership` and a value
`accepted` or `pending`. `accepted` or `pending`.
@ -94,7 +98,7 @@ ID HOSTNAME STATUS AVAILABILITY MANAGER STATU
38ciaotwjuritcdtn9npbnkuz swarm-worker1 Ready Active 38ciaotwjuritcdtn9npbnkuz swarm-worker1 Ready Active
``` ```
#### Name #### name
The `name` filter matches on all or part of a node hostname. The `name` filter matches on all or part of a node hostname.
@ -107,7 +111,7 @@ ID HOSTNAME STATUS AVAILABILITY MANAGER STATU
e216jshn25ckzbvmwlnh5jr3g * swarm-manager1 Ready Active Leader e216jshn25ckzbvmwlnh5jr3g * swarm-manager1 Ready Active Leader
``` ```
#### Role #### role
The `role` filter matches nodes based on the presence of a `role` and a value `worker` or `manager`. The `role` filter matches nodes based on the presence of a `role` and a value `worker` or `manager`.
@ -120,7 +124,7 @@ ID HOSTNAME STATUS AVAILABILITY MANAGER STATU
e216jshn25ckzbvmwlnh5jr3g * swarm-manager1 Ready Active Leader e216jshn25ckzbvmwlnh5jr3g * swarm-manager1 Ready Active Leader
``` ```
## Related information ## Related commands
* [node demote](node_demote.md) * [node demote](node_demote.md)
* [node inspect](node_inspect.md) * [node inspect](node_inspect.md)

View File

@ -24,14 +24,18 @@ Options:
--help Print usage --help Print usage
``` ```
Promotes a node to manager. This command targets a docker engine that is a manager in the swarm. ## Description
Promotes a node to manager. This command targets a docker engine that is a
manager in the swarm.
## Examples
```bash ```bash
$ docker node promote <node name> $ docker node promote <node name>
``` ```
## Related information ## Related commands
* [node demote](node_demote.md) * [node demote](node_demote.md)
* [node inspect](node_inspect.md) * [node inspect](node_inspect.md)

View File

@ -28,20 +28,23 @@ Options:
--no-trunc Do not truncate output --no-trunc Do not truncate output
``` ```
## Description
Lists all the tasks on a Node that Docker knows about. You can filter using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section for more information about available filter options. Lists all the tasks on a Node that Docker knows about. You can filter using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section for more information about available filter options.
Example output: ## Examples
$ docker node ps swarm-manager1 ```bash
NAME IMAGE NODE DESIRED STATE CURRENT STATE $ docker node ps swarm-manager1
redis.1.7q92v0nr1hcgts2amcjyqg3pq redis:3.0.6 swarm-manager1 Running Running 5 hours NAME IMAGE NODE DESIRED STATE CURRENT STATE
redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 29 seconds redis.1.7q92v0nr1hcgts2amcjyqg3pq redis:3.0.6 swarm-manager1 Running Running 5 hours
redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 29 seconds
redis.9.dkkual96p4bb3s6b10r7coxxt redis:3.0.6 swarm-manager1 Running Running 5 seconds redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds
redis.10.0tgctg8h8cech4w0k0gwrmr23 redis:3.0.6 swarm-manager1 Running Running 5 seconds redis.9.dkkual96p4bb3s6b10r7coxxt redis:3.0.6 swarm-manager1 Running Running 5 seconds
redis.10.0tgctg8h8cech4w0k0gwrmr23 redis:3.0.6 swarm-manager1 Running Running 5 seconds
```
### Filtering
## Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -59,23 +62,27 @@ The `name` filter matches on all or part of a task's name.
The following filter matches all tasks with a name containing the `redis` string. The following filter matches all tasks with a name containing the `redis` string.
$ docker node ps -f name=redis swarm-manager1 ```bash
NAME IMAGE NODE DESIRED STATE CURRENT STATE $ docker node ps -f name=redis swarm-manager1
redis.1.7q92v0nr1hcgts2amcjyqg3pq redis:3.0.6 swarm-manager1 Running Running 5 hours
redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 29 seconds
redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds
redis.9.dkkual96p4bb3s6b10r7coxxt redis:3.0.6 swarm-manager1 Running Running 5 seconds
redis.10.0tgctg8h8cech4w0k0gwrmr23 redis:3.0.6 swarm-manager1 Running Running 5 seconds
NAME IMAGE NODE DESIRED STATE CURRENT STATE
redis.1.7q92v0nr1hcgts2amcjyqg3pq redis:3.0.6 swarm-manager1 Running Running 5 hours
redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 29 seconds
redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds
redis.9.dkkual96p4bb3s6b10r7coxxt redis:3.0.6 swarm-manager1 Running Running 5 seconds
redis.10.0tgctg8h8cech4w0k0gwrmr23 redis:3.0.6 swarm-manager1 Running Running 5 seconds
```
#### id #### id
The `id` filter matches a task's id. The `id` filter matches a task's id.
$ docker node ps -f id=bg8c07zzg87di2mufeq51a2qp swarm-manager1 ```bash
NAME IMAGE NODE DESIRED STATE CURRENT STATE $ docker node ps -f id=bg8c07zzg87di2mufeq51a2qp swarm-manager1
redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds
NAME IMAGE NODE DESIRED STATE CURRENT STATE
redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds
```
#### label #### label
@ -86,6 +93,7 @@ The following filter matches tasks with the `usage` label regardless of its valu
```bash ```bash
$ docker node ps -f "label=usage" $ docker node ps -f "label=usage"
NAME IMAGE NODE DESIRED STATE CURRENT STATE NAME IMAGE NODE DESIRED STATE CURRENT STATE
redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 10 minutes redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 10 minutes
redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 9 minutes redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 9 minutes
@ -97,7 +105,7 @@ redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running R
The `desired-state` filter can take the values `running`, `shutdown`, and `accepted`. The `desired-state` filter can take the values `running`, `shutdown`, and `accepted`.
## Related information ## Related commands
* [node demote](node_demote.md) * [node demote](node_demote.md)
* [node inspect](node_inspect.md) * [node inspect](node_inspect.md)

View File

@ -28,33 +28,40 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
When run from a manager node, removes the specified nodes from a swarm. When run from a manager node, removes the specified nodes from a swarm.
Example output: ## Examples
```nohighlight ### Remove a stopped node from the swarm
```bash
$ docker node rm swarm-node-02 $ docker node rm swarm-node-02
Node swarm-node-02 removed from swarm Node swarm-node-02 removed from swarm
``` ```
### Attempt to remove a running node from a swarm
Removes the specified nodes from the swarm, but only if the nodes are in the Removes the specified nodes from the swarm, but only if the nodes are in the
down state. If you attempt to remove an active node you will receive an error: down state. If you attempt to remove an active node you will receive an error:
```nohighlight ```non
$ docker node rm swarm-node-03 $ docker node rm swarm-node-03
Error response from daemon: rpc error: code = 9 desc = node swarm-node-03 is not Error response from daemon: rpc error: code = 9 desc = node swarm-node-03 is not
down and can't be removed down and can't be removed
``` ```
### Forcibly remove an inaccessible node from a swarm
If you lose access to a worker node or need to shut it down because it has been If you lose access to a worker node or need to shut it down because it has been
compromised or is not behaving as expected, you can use the `--force` option. compromised or is not behaving as expected, you can use the `--force` option.
This may cause transient errors or interruptions, depending on the type of task This may cause transient errors or interruptions, depending on the type of task
being run on the node. being run on the node.
```nohighlight ```bash
$ docker node rm --force swarm-node-03 $ docker node rm --force swarm-node-03
Node swarm-node-03 removed from swarm Node swarm-node-03 removed from swarm
@ -63,7 +70,7 @@ Node swarm-node-03 removed from swarm
A manager node must be demoted to a worker node (using `docker node demote`) A manager node must be demoted to a worker node (using `docker node demote`)
before you can remove it from the swarm. before you can remove it from the swarm.
## Related information ## Related commands
* [node demote](node_demote.md) * [node demote](node_demote.md)
* [node inspect](node_inspect.md) * [node inspect](node_inspect.md)

View File

@ -13,7 +13,7 @@ keywords: "resources, update, dynamically"
will be rejected. will be rejected.
--> -->
## update # update
```markdown ```markdown
Usage: docker node update [OPTIONS] NODE Usage: docker node update [OPTIONS] NODE
@ -28,6 +28,12 @@ Options:
--role string Role of the node (worker/manager) --role string Role of the node (worker/manager)
``` ```
## Description
Update metadata about a node, such as its availability, labels, or roles.
## Examples
### Add label metadata to a node ### Add label metadata to a node
Add metadata to a swarm node using node labels. You can specify a node label as Add metadata to a swarm node using node labels. You can specify a node label as
@ -39,7 +45,7 @@ $ docker node update --label-add foo worker1
To add multiple labels to a node, pass the `--label-add` flag for each label: To add multiple labels to a node, pass the `--label-add` flag for each label:
``` bash ```bash
$ docker node update --label-add foo --label-add bar worker1 $ docker node update --label-add foo --label-add bar worker1
``` ```
@ -61,7 +67,7 @@ entity within the swarm. Do not confuse them with the docker daemon labels for
For more information about labels, refer to [apply custom For more information about labels, refer to [apply custom
metadata](https://docs.docker.com/engine/userguide/labels-custom-metadata/). metadata](https://docs.docker.com/engine/userguide/labels-custom-metadata/).
## Related information ## Related commands
* [node demote](node_demote.md) * [node demote](node_demote.md)
* [node inspect](node_inspect.md) * [node inspect](node_inspect.md)

View File

@ -24,6 +24,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
The `docker pause` command suspends all processes in the specified containers. The `docker pause` command suspends all processes in the specified containers.
On Linux, this uses the cgroups freezer. Traditionally, when suspending a process On Linux, this uses the cgroups freezer. Traditionally, when suspending a process
the `SIGSTOP` signal is used, which is observable by the process being suspended. the `SIGSTOP` signal is used, which is observable by the process being suspended.
@ -35,6 +37,12 @@ See the
[cgroups freezer documentation](https://www.kernel.org/doc/Documentation/cgroup-v1/freezer-subsystem.txt) [cgroups freezer documentation](https://www.kernel.org/doc/Documentation/cgroup-v1/freezer-subsystem.txt)
for further details. for further details.
## Related information ## Examples
```bash
$ docker pause my_container
```
## Related commands
* [unpause](unpause.md) * [unpause](unpause.md)

View File

@ -21,34 +21,38 @@ Usage: docker plugin create [OPTIONS] PLUGIN PLUGIN-DATA-DIR
Create a plugin from a rootfs and configuration. Plugin data directory must contain config.json and rootfs directory. Create a plugin from a rootfs and configuration. Plugin data directory must contain config.json and rootfs directory.
Options: Options:
--compress Compress the context using gzip --compress Compress the context using gzip
--help Print usage --help Print usage
``` ```
## Description
Creates a plugin. Before creating the plugin, prepare the plugin's root filesystem as well as Creates a plugin. Before creating the plugin, prepare the plugin's root filesystem as well as
[the config.json](../../extend/config.md) [the config.json](../../extend/config.md)
## Examples
The following example shows how to create a sample `plugin`. The following example shows how to create a sample `plugin`.
```bash ```bash
$ ls -ls /home/pluginDir $ ls -ls /home/pluginDir
4 -rw-r--r-- 1 root root 431 Nov 7 01:40 config.json 4 -rw-r--r-- 1 root root 431 Nov 7 01:40 config.json
0 drwxr-xr-x 19 root root 420 Nov 7 01:40 rootfs 0 drwxr-xr-x 19 root root 420 Nov 7 01:40 rootfs
$ docker plugin create plugin /home/pluginDir $ docker plugin create plugin /home/pluginDir
plugin plugin
$ docker plugin ls $ docker plugin ls
ID NAME TAG DESCRIPTION ENABLED ID NAME TAG DESCRIPTION ENABLED
672d8144ec02 plugin latest A sample plugin for Docker false 672d8144ec02 plugin latest A sample plugin for Docker false
``` ```
The plugin can subsequently be enabled for local use or pushed to the public registry. The plugin can subsequently be enabled for local use or pushed to the public registry.
## Related information ## Related commands
* [plugin disable](plugin_disable.md) * [plugin disable](plugin_disable.md)
* [plugin enable](plugin_enable.md) * [plugin enable](plugin_enable.md)

View File

@ -25,10 +25,13 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Disables a plugin. The plugin must be installed before it can be disabled, Disables a plugin. The plugin must be installed before it can be disabled,
see [`docker plugin install`](plugin_install.md). Without the `-f` option, see [`docker plugin install`](plugin_install.md). Without the `-f` option,
a plugin that has references (eg, volumes, networks) cannot be disabled. a plugin that has references (eg, volumes, networks) cannot be disabled.
## Examples
The following example shows that the `sample-volume-plugin` plugin is installed The following example shows that the `sample-volume-plugin` plugin is installed
and enabled: and enabled:
@ -53,7 +56,7 @@ ID NAME TAG DESCRIP
69553ca1d123 tiborvass/sample-volume-plugin latest A test plugin for Docker false 69553ca1d123 tiborvass/sample-volume-plugin latest A test plugin for Docker false
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin enable](plugin_enable.md) * [plugin enable](plugin_enable.md)

View File

@ -25,9 +25,12 @@ Options:
--timeout int HTTP client timeout (in seconds) --timeout int HTTP client timeout (in seconds)
``` ```
## Description
Enables a plugin. The plugin must be installed before it can be enabled, Enables a plugin. The plugin must be installed before it can be enabled,
see [`docker plugin install`](plugin_install.md). see [`docker plugin install`](plugin_install.md).
## Examples
The following example shows that the `sample-volume-plugin` plugin is installed, The following example shows that the `sample-volume-plugin` plugin is installed,
but disabled: but disabled:
@ -52,7 +55,7 @@ ID NAME TAG DESCRIP
69553ca1d123 tiborvass/sample-volume-plugin latest A test plugin for Docker true 69553ca1d123 tiborvass/sample-volume-plugin latest A test plugin for Docker true
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin disable](plugin_disable.md) * [plugin disable](plugin_disable.md)

View File

@ -25,15 +25,17 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Returns information about a plugin. By default, this command renders all results Returns information about a plugin. By default, this command renders all results
in a JSON array. in a JSON array.
Example output: ## Examples
```bash
```none
$ docker plugin inspect tiborvass/sample-volume-plugin:latest $ docker plugin inspect tiborvass/sample-volume-plugin:latest
```
```JSON
{ {
"Id": "8c74c978c434745c3ade82f1bc0acf38d04990eaf494fa507c16d9f1daa99c21", "Id": "8c74c978c434745c3ade82f1bc0acf38d04990eaf494fa507c16d9f1daa99c21",
"Name": "tiborvass/sample-volume-plugin:latest", "Name": "tiborvass/sample-volume-plugin:latest",
@ -140,18 +142,21 @@ $ docker plugin inspect tiborvass/sample-volume-plugin:latest
} }
} }
``` ```
(output formatted for readability) (output formatted for readability)
### Formatting the output
```bash ```bash
{% raw %}
$ docker plugin inspect -f '{{.Id}}' tiborvass/sample-volume-plugin:latest $ docker plugin inspect -f '{{.Id}}' tiborvass/sample-volume-plugin:latest
```
```
8c74c978c434745c3ade82f1bc0acf38d04990eaf494fa507c16d9f1daa99c21 8c74c978c434745c3ade82f1bc0acf38d04990eaf494fa507c16d9f1daa99c21
{% endraw %}
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin enable](plugin_enable.md) * [plugin enable](plugin_enable.md)

View File

@ -28,16 +28,19 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Installs and enables a plugin. Docker looks first for the plugin on your Docker Installs and enables a plugin. Docker looks first for the plugin on your Docker
host. If the plugin does not exist locally, then the plugin is pulled from host. If the plugin does not exist locally, then the plugin is pulled from
the registry. Note that the minimum required registry version to distribute the registry. Note that the minimum required registry version to distribute
plugins is 2.3.0 plugins is 2.3.0
## Examples
The following example installs `vieus/sshfs` plugin and [set](plugin_set.md) it's env variable The following example installs `vieus/sshfs` plugin and [sets](plugin_set.md) its
`DEBUG` to 1. Install consists of pulling the plugin from Docker Hub, prompting `DEBUG` environment variable to `1`. To install, `pull` the plugin from Docker
the user to accept the list of privileges that the plugin needs, settings parameters Hub and prompt the user to accept the list of privileges that the plugin needs,
and enabling the plugin. set the plugin's parameters and enable the plugin.
```bash ```bash
$ docker plugin install vieux/sshfs DEBUG=1 $ docker plugin install vieux/sshfs DEBUG=1
@ -59,7 +62,7 @@ ID NAME TAG DESCRIPTION
69553ca1d123 vieux/sshfs latest sshFS plugin for Docker true 69553ca1d123 vieux/sshfs latest sshFS plugin for Docker true
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin disable](plugin_disable.md) * [plugin disable](plugin_disable.md)

View File

@ -31,12 +31,14 @@ Options:
-q, --quiet Only display plugin IDs -q, --quiet Only display plugin IDs
``` ```
## Description
Lists all the plugins that are currently installed. You can install plugins Lists all the plugins that are currently installed. You can install plugins
using the [`docker plugin install`](plugin_install.md) command. using the [`docker plugin install`](plugin_install.md) command.
You can also filter using the `-f` or `--filter` flag. You can also filter using the `-f` or `--filter` flag.
Refer to the [filtering](#filtering) section for more information about available filter options. Refer to the [filtering](#filtering) section for more information about available filter options.
Example output: ## Examples
```bash ```bash
$ docker plugin ls $ docker plugin ls
@ -45,7 +47,7 @@ ID NAME TAG DESCRIP
69553ca1d123 tiborvass/sample-volume-plugin latest A test plugin for Docker true 69553ca1d123 tiborvass/sample-volume-plugin latest A test plugin for Docker true
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -55,11 +57,11 @@ The currently supported filters are:
* enabled (boolean - true or false, 0 or 1) * enabled (boolean - true or false, 0 or 1)
* capability (string - currently `volumedriver`, `networkdriver`, `ipamdriver`, or `authz`) * capability (string - currently `volumedriver`, `networkdriver`, `ipamdriver`, or `authz`)
### enabled #### enabled
The `enabled` filter matches on plugins enabled or disabled. The `enabled` filter matches on plugins enabled or disabled.
### capability #### capability
The `capability` filter matches on plugin capabilities. One plugin The `capability` filter matches on plugin capabilities. One plugin
might have multiple capabilities. Currently `volumedriver`, `networkdriver`, might have multiple capabilities. Currently `volumedriver`, `networkdriver`,
@ -67,14 +69,16 @@ might have multiple capabilities. Currently `volumedriver`, `networkdriver`,
```bash ```bash
$ docker plugin install --disable tiborvass/no-remove $ docker plugin install --disable tiborvass/no-remove
tiborvass/no-remove tiborvass/no-remove
$ docker plugin ls --filter enabled=true $ docker plugin ls --filter enabled=true
NAME TAG DESCRIPTION ENABLED NAME TAG DESCRIPTION ENABLED
``` ```
## Formatting ### Formatting
The formatting options (`--format`) pretty-prints plugins output The formatting options (`--format`) pretty-prints plugins output
using a Go template. using a Go template.
@ -97,12 +101,15 @@ The following example uses a template without headers and outputs the
`ID` and `Name` entries separated by a colon for all plugins: `ID` and `Name` entries separated by a colon for all plugins:
```bash ```bash
{% raw %}
$ docker plugin ls --format "{{.ID}}: {{.Name}}" $ docker plugin ls --format "{{.ID}}: {{.Name}}"
4be01827a72e: tiborvass/no-remove 4be01827a72e: tiborvass/no-remove
{% endraw %}
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin disable](plugin_disable.md) * [plugin disable](plugin_disable.md)

View File

@ -23,22 +23,27 @@ Options:
--help Print usage --help Print usage
``` ```
Use `docker plugin create` to create the plugin. Once the plugin is ready for distribution, ## Description
use `docker plugin push` to share your images to the Docker Hub registry or to a self-hosted one.
After you have created a plugin using `docker plugin create` and the plugin is
ready for distribution, use `docker plugin push` to share your images to Docker
Hub or a self-hosted registry.
Registry credentials are managed by [docker login](login.md). Registry credentials are managed by [docker login](login.md).
## Examples
The following example shows how to push a sample `user/plugin`. The following example shows how to push a sample `user/plugin`.
```bash ```bash
$ docker plugin ls $ docker plugin ls
ID NAME TAG DESCRIPTION ENABLED ID NAME TAG DESCRIPTION ENABLED
69553ca1d456 user/plugin latest A sample plugin for Docker false 69553ca1d456 user/plugin latest A sample plugin for Docker false
$ docker plugin push user/plugin $ docker plugin push user/plugin
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin disable](plugin_disable.md) * [plugin disable](plugin_disable.md)

View File

@ -28,12 +28,17 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Removes a plugin. You cannot remove a plugin if it is enabled, you must disable Removes a plugin. You cannot remove a plugin if it is enabled, you must disable
a plugin using the [`docker plugin disable`](plugin_disable.md) before removing a plugin using the [`docker plugin disable`](plugin_disable.md) before removing
it (or use --force, use of force is not recommended, since it can affect it (or use --force, use of force is not recommended, since it can affect
functioning of running containers using the plugin). functioning of running containers using the plugin).
The following example disables and removes the `sample-volume-plugin:latest` plugin; ## Examples
The following example disables and removes the `sample-volume-plugin:latest`
plugin:
```bash ```bash
$ docker plugin disable tiborvass/sample-volume-plugin $ docker plugin disable tiborvass/sample-volume-plugin
@ -43,7 +48,7 @@ $ docker plugin rm tiborvass/sample-volume-plugin:latest
tiborvass/sample-volume-plugin tiborvass/sample-volume-plugin
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin disable](plugin_disable.md) * [plugin disable](plugin_disable.md)

View File

@ -24,6 +24,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Change settings for a plugin. The plugin must be disabled. Change settings for a plugin. The plugin must be disabled.
The settings currently supported are: The settings currently supported are:
@ -32,23 +34,33 @@ The settings currently supported are:
* path of devices * path of devices
* args * args
## Examples
### Change an environment variable
The following example change the env variable `DEBUG` on the The following example change the env variable `DEBUG` on the
`sample-volume-plugin` plugin. `sample-volume-plugin` plugin.
```bash ```bash
{% raw %}
$ docker plugin inspect -f {{.Settings.Env}} tiborvass/sample-volume-plugin $ docker plugin inspect -f {{.Settings.Env}} tiborvass/sample-volume-plugin
[DEBUG=0] [DEBUG=0]
$ docker plugin set tiborvass/sample-volume-plugin DEBUG=1 $ docker plugin set tiborvass/sample-volume-plugin DEBUG=1
$ docker plugin inspect -f {{.Settings.Env}} tiborvass/sample-volume-plugin $ docker plugin inspect -f {{.Settings.Env}} tiborvass/sample-volume-plugin
[DEBUG=1] [DEBUG=1]
{% endraw %}
``` ```
### Change the source of a mount
The following example change the source of the `mymount` mount on The following example change the source of the `mymount` mount on
the `myplugin` plugin. the `myplugin` plugin.
```bash ```bash
{% raw %}
$ docker plugin inspect -f '{{with $mount := index .Settings.Mounts 0}}{{$mount.Source}}{{end}}' myplugin $ docker plugin inspect -f '{{with $mount := index .Settings.Mounts 0}}{{$mount.Source}}{{end}}' myplugin
/foo /foo
@ -56,14 +68,19 @@ $ docker plugins set myplugin mymount.source=/bar
$ docker plugin inspect -f '{{with $mount := index .Settings.Mounts 0}}{{$mount.Source}}{{end}}' myplugin $ docker plugin inspect -f '{{with $mount := index .Settings.Mounts 0}}{{$mount.Source}}{{end}}' myplugin
/bar /bar
{% endraw %}
``` ```
Note: since only `source` is settable in `mymount`, `docker plugins set mymount=/bar myplugin` would work too. > **Note**: Since only `source` is settable in `mymount`,
> `docker plugins set mymount=/bar myplugin` would work too.
### Change a device path
The following example change the path of the `mydevice` device on The following example change the path of the `mydevice` device on
the `myplugin` plugin. the `myplugin` plugin.
```bash ```bash
{% raw %}
$ docker plugin inspect -f '{{with $device := index .Settings.Devices 0}}{{$device.Path}}{{end}}' myplugin $ docker plugin inspect -f '{{with $device := index .Settings.Devices 0}}{{$device.Path}}{{end}}' myplugin
/dev/foo /dev/foo
@ -71,13 +88,18 @@ $ docker plugins set myplugin mydevice.path=/dev/bar
$ docker plugin inspect -f '{{with $device := index .Settings.Devices 0}}{{$device.Path}}{{end}}' myplugin $ docker plugin inspect -f '{{with $device := index .Settings.Devices 0}}{{$device.Path}}{{end}}' myplugin
/dev/bar /dev/bar
{% endraw %}
``` ```
Note: since only `path` is settable in `mydevice`, `docker plugins set mydevice=/dev/bar myplugin` would work too. > **Note**: Since only `path` is settable in `mydevice`,
> `docker plugins set mydevice=/dev/bar myplugin` would work too.
### Change the source of the arguments
The following example change the source of the args on the `myplugin` plugin. The following example change the source of the args on the `myplugin` plugin.
```bash ```bash
{% raw %}
$ docker plugin inspect -f '{{.Settings.Args}}' myplugin $ docker plugin inspect -f '{{.Settings.Args}}' myplugin
["foo", "bar"] ["foo", "bar"]
@ -85,9 +107,10 @@ $ docker plugins set myplugin args="foo bar baz"
$ docker plugin inspect -f '{{.Settings.Args}}' myplugin $ docker plugin inspect -f '{{.Settings.Args}}' myplugin
["foo", "bar", "baz"] ["foo", "bar", "baz"]
{% endraw %}
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin disable](plugin_disable.md) * [plugin disable](plugin_disable.md)

View File

@ -27,11 +27,15 @@ Options:
--skip-remote-check Do not check if specified remote plugin matches existing plugin image --skip-remote-check Do not check if specified remote plugin matches existing plugin image
``` ```
## Description
Upgrades an existing plugin to the specified remote plugin image. If no remote Upgrades an existing plugin to the specified remote plugin image. If no remote
is specified, Docker will re-pull the current image and use the updated version. is specified, Docker will re-pull the current image and use the updated version.
All existing references to the plugin will continue to work. All existing references to the plugin will continue to work.
The plugin must be disabled before running the upgrade. The plugin must be disabled before running the upgrade.
## Examples
The following example installs `vieus/sshfs` plugin, uses it to create and use The following example installs `vieus/sshfs` plugin, uses it to create and use
a volume, then upgrades the plugin. a volume, then upgrades the plugin.
@ -71,7 +75,7 @@ $ docker run -it -v sshvolume:/data alpine sh -c "ls /data"
hello hello
``` ```
## Related information ## Related commands
* [plugin create](plugin_create.md) * [plugin create](plugin_create.md)
* [plugin disable](plugin_disable.md) * [plugin disable](plugin_disable.md)

View File

@ -24,18 +24,24 @@ Options:
--help Print usage --help Print usage
``` ```
## Examples
### Show all mapped ports
You can find out all the ports mapped by not specifying a `PRIVATE_PORT`, or You can find out all the ports mapped by not specifying a `PRIVATE_PORT`, or
just a specific mapping: just a specific mapping:
$ docker ps ```bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $ docker ps
b650456536c7 busybox:latest top 54 minutes ago Up 54 minutes 0.0.0.0:1234->9876/tcp, 0.0.0.0:4321->7890/tcp test CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker port test b650456536c7 busybox:latest top 54 minutes ago Up 54 minutes 0.0.0.0:1234->9876/tcp, 0.0.0.0:4321->7890/tcp test
7890/tcp -> 0.0.0.0:4321 $ docker port test
9876/tcp -> 0.0.0.0:1234 7890/tcp -> 0.0.0.0:4321
$ docker port test 7890/tcp 9876/tcp -> 0.0.0.0:1234
0.0.0.0:4321 $ docker port test 7890/tcp
$ docker port test 7890/udp 0.0.0.0:4321
2014/06/24 11:53:36 Error: No public port '7890/udp' published for test $ docker port test 7890/udp
$ docker port test 7890 2014/06/24 11:53:36 Error: No public port '7890/udp' published for test
0.0.0.0:4321 $ docker port test 7890
0.0.0.0:4321
```

View File

@ -45,6 +45,10 @@ Options:
-s, --size Display total file sizes -s, --size Display total file sizes
``` ```
## Examples
### Prevent truncating output
Running `docker ps --no-trunc` showing 2 linked containers. Running `docker ps --no-trunc` showing 2 linked containers.
```bash ```bash
@ -55,6 +59,8 @@ CONTAINER ID IMAGE COMMAND CREATED
d7886598dbe2 crosbymichael/redis:latest /redis-server --dir 33 minutes ago Up 33 minutes 6379/tcp redis,webapp/db d7886598dbe2 crosbymichael/redis:latest /redis-server --dir 33 minutes ago Up 33 minutes 6379/tcp redis,webapp/db
``` ```
### Show both running and stopped containers
The `docker ps` command only shows running containers by default. To see all The `docker ps` command only shows running containers by default. To see all
containers, use the `-a` (or `--all`) flag: containers, use the `-a` (or `--all`) flag:
@ -66,7 +72,7 @@ $ docker ps -a
container that exposes TCP ports `100, 101, 102` displays `100-102/tcp` in container that exposes TCP ports `100, 101, 102` displays `100-102/tcp` in
the `PORTS` column. the `PORTS` column.
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there is more The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there is more
than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`)
@ -88,7 +94,7 @@ The currently supported filters are:
* publish=(container's published port) - filters published ports by containers * publish=(container's published port) - filters published ports by containers
* expose=(container's exposed port) - filters exposed ports by containers * expose=(container's exposed port) - filters exposed ports by containers
#### Label #### label
The `label` filter matches containers based on the presence of a `label` alone or a `label` and a The `label` filter matches containers based on the presence of a `label` alone or a `label` and a
value. value.
@ -112,7 +118,7 @@ CONTAINER ID IMAGE COMMAND CREATED
d85756f57265 busybox "top" About a minute ago Up About a minute high_albattani d85756f57265 busybox "top" About a minute ago Up About a minute high_albattani
``` ```
#### Name #### name
The `name` filter matches on all or part of a container's name. The `name` filter matches on all or part of a container's name.
@ -136,7 +142,7 @@ CONTAINER ID IMAGE COMMAND CREATED
673394ef1d4c busybox "top" 38 minutes ago Up 38 minutes nostalgic_shockley 673394ef1d4c busybox "top" 38 minutes ago Up 38 minutes nostalgic_shockley
``` ```
#### Exited #### exited
The `exited` filter matches containers by exist status code. For example, to The `exited` filter matches containers by exist status code. For example, to
filter for containers that have exited successfully: filter for containers that have exited successfully:
@ -150,13 +156,14 @@ ea09c3c82f6e registry:latest /srv/run.sh 2 weeks ago
48ee228c9464 fedora:20 bash 2 weeks ago Exited (0) 2 weeks ago tender_torvalds 48ee228c9464 fedora:20 bash 2 weeks ago Exited (0) 2 weeks ago tender_torvalds
``` ```
#### Killed containers #### Filter by exit signal
You can use a filter to locate containers that exited with status of `137` You can use a filter to locate containers that exited with status of `137`
meaning a `SIGKILL(9)` killed them. meaning a `SIGKILL(9)` killed them.
```bash ```none
$ docker ps -a --filter 'exited=137' $ docker ps -a --filter 'exited=137'
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b3e1c0ed5bfe ubuntu:latest "sleep 1000" 12 seconds ago Exited (137) 5 seconds ago grave_kowalevski b3e1c0ed5bfe ubuntu:latest "sleep 1000" 12 seconds ago Exited (137) 5 seconds ago grave_kowalevski
a2eb5558d669 redis:latest "/entrypoint.sh redi 2 hours ago Exited (137) 2 hours ago sharp_lalande a2eb5558d669 redis:latest "/entrypoint.sh redi 2 hours ago Exited (137) 2 hours ago sharp_lalande
@ -168,7 +175,7 @@ Any of these events result in a `137` status:
* `docker kill` kills the container * `docker kill` kills the container
* Docker daemon restarts which kills all running containers * Docker daemon restarts which kills all running containers
#### Status #### status
The `status` filter matches containers by status. You can filter using The `status` filter matches containers by status. You can filter using
`created`, `restarting`, `running`, `removing`, `paused`, `exited` and `dead`. For example, `created`, `restarting`, `running`, `removing`, `paused`, `exited` and `dead`. For example,
@ -192,7 +199,7 @@ CONTAINER ID IMAGE COMMAND CREATED
673394ef1d4c busybox "top" About an hour ago Up About an hour (Paused) nostalgic_shockley 673394ef1d4c busybox "top" About an hour ago Up About an hour (Paused) nostalgic_shockley
``` ```
#### Ancestor #### ancestor
The `ancestor` filter matches containers based on its image or a descendant of The `ancestor` filter matches containers based on its image or a descendant of
it. The filter supports the following image representation: it. The filter supports the following image representation:
@ -245,7 +252,9 @@ CONTAINER ID IMAGE COMMAND CREATED
82a598284012 ubuntu:12.04.5 "top" 3 minutes ago Up 3 minutes sleepy_bose 82a598284012 ubuntu:12.04.5 "top" 3 minutes ago Up 3 minutes sleepy_bose
``` ```
#### Before #### Create time
##### before
The `before` filter shows only containers created before the container with The `before` filter shows only containers created before the container with
given id or name. For example, having these containers created: given id or name. For example, having these containers created:
@ -269,7 +278,7 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS
6e63f6ff38b0 busybox "top" About a minute ago Up About a minute distracted_fermat 6e63f6ff38b0 busybox "top" About a minute ago Up About a minute distracted_fermat
``` ```
#### Since ##### since
The `since` filter shows only containers created since the container with given The `since` filter shows only containers created since the container with given
id or name. For example, with the same containers as in `before` filter: id or name. For example, with the same containers as in `before` filter:
@ -282,12 +291,13 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS
4aace5031105 busybox "top" 10 minutes ago Up 10 minutes focused_hamilton 4aace5031105 busybox "top" 10 minutes ago Up 10 minutes focused_hamilton
``` ```
#### Volume #### volume
The `volume` filter shows only containers that mount a specific volume or have The `volume` filter shows only containers that mount a specific volume or have
a volume mounted in a specific path: a volume mounted in a specific path:
```bash{% raw %} ```bash
{% raw %}
$ docker ps --filter volume=remote-volume --format "table {{.ID}}\t{{.Mounts}}" $ docker ps --filter volume=remote-volume --format "table {{.ID}}\t{{.Mounts}}"
CONTAINER ID MOUNTS CONTAINER ID MOUNTS
9c3527ed70ce remote-volume 9c3527ed70ce remote-volume
@ -295,9 +305,10 @@ CONTAINER ID MOUNTS
$ docker ps --filter volume=/data --format "table {{.ID}}\t{{.Mounts}}" $ docker ps --filter volume=/data --format "table {{.ID}}\t{{.Mounts}}"
CONTAINER ID MOUNTS CONTAINER ID MOUNTS
9c3527ed70ce remote-volume 9c3527ed70ce remote-volume
{% endraw %}``` {% endraw %}
```
#### Network #### network
The `network` filter shows only containers that are connected to a network with The `network` filter shows only containers that are connected to a network with
a given name or id. a given name or id.
@ -332,7 +343,7 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS
9d4893ed80fe ubuntu "top" 10 minutes ago Up 10 minutes test1 9d4893ed80fe ubuntu "top" 10 minutes ago Up 10 minutes test1
``` ```
#### Publish and Expose #### publish and expose
The `publish` and `expose` filters show only containers that have published or exposed port with a given port The `publish` and `expose` filters show only containers that have published or exposed port with a given port
number, port range, and/or protocol. The default protocol is `tcp` when not specified. number, port range, and/or protocol. The default protocol is `tcp` when not specified.
@ -370,7 +381,7 @@ $ docker ps --filter publish=80/udp
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
``` ```
## Formatting ### Formatting
The formatting option (`--format`) pretty-prints container output using a Go The formatting option (`--format`) pretty-prints container output using a Go
template. template.

View File

@ -26,6 +26,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Most of your images will be created on top of a base image from the Most of your images will be created on top of a base image from the
[Docker Hub](https://hub.docker.com) registry. [Docker Hub](https://hub.docker.com) registry.
@ -35,7 +37,7 @@ can `pull` and try without needing to define and configure your own.
To download a particular image, or set of images (i.e., a repository), To download a particular image, or set of images (i.e., a repository),
use `docker pull`. use `docker pull`.
## Proxy configuration ### Proxy configuration
If you are behind an HTTP proxy server, for example in corporate settings, If you are behind an HTTP proxy server, for example in corporate settings,
before open a connect to registry, you may need to configure the Docker before open a connect to registry, you may need to configure the Docker
@ -44,7 +46,7 @@ environment variables. To set these environment variables on a host using
`systemd`, refer to the [control and configure Docker with systemd](https://docs.docker.com/engine/admin/systemd/#http-proxy) `systemd`, refer to the [control and configure Docker with systemd](https://docs.docker.com/engine/admin/systemd/#http-proxy)
for variables configuration. for variables configuration.
## Concurrent downloads ### Concurrent downloads
By default the Docker daemon will pull three layers of an image at a time. By default the Docker daemon will pull three layers of an image at a time.
If you are on a low bandwidth connection this may cause timeout issues and you may want to lower If you are on a low bandwidth connection this may cause timeout issues and you may want to lower
@ -110,7 +112,7 @@ For more information about images, layers, and the content-addressable store,
refer to [understand images, containers, and storage drivers](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/). refer to [understand images, containers, and storage drivers](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/).
## Pull an image by digest (immutable identifier) ### Pull an image by digest (immutable identifier)
So far, you've pulled images by their name (and "tag"). Using names and tags is So far, you've pulled images by their name (and "tag"). Using names and tags is
a convenient way to work with images. When using tags, you can `docker pull` an a convenient way to work with images. When using tags, you can `docker pull` an
@ -175,7 +177,7 @@ MAINTAINER some maintainer <maintainer@example.com>
> digest accordingly. > digest accordingly.
## Pulling from a different registry ### Pull from a different registry
By default, `docker pull` pulls images from [Docker Hub](https://hub.docker.com). It is also possible to By default, `docker pull` pulls images from [Docker Hub](https://hub.docker.com). It is also possible to
manually specify the path of a registry to pull from. For example, if you have manually specify the path of a registry to pull from. For example, if you have
@ -196,7 +198,7 @@ registry is allowed to be accessed over an insecure connection. Refer to the
[insecure registries](dockerd.md#insecure-registries) section for more information. [insecure registries](dockerd.md#insecure-registries) section for more information.
## Pull a repository with multiple images ### Pull a repository with multiple images
By default, `docker pull` pulls a *single* image from the registry. A repository By default, `docker pull` pulls a *single* image from the registry. A repository
can contain multiple images. To pull all images from a repository, provide the can contain multiple images. To pull all images from a repository, provide the
@ -231,7 +233,7 @@ fedora heisenbug 105182bb5e8b 5 days ago 372.7 MB
fedora latest 105182bb5e8b 5 days ago 372.7 MB fedora latest 105182bb5e8b 5 days ago 372.7 MB
``` ```
## Canceling a pull ### Cancel a pull
Killing the `docker pull` process, for example by pressing `CTRL-c` while it is Killing the `docker pull` process, for example by pressing `CTRL-c` while it is
running in a terminal, will terminate the pull operation. running in a terminal, will terminate the pull operation.

View File

@ -25,6 +25,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Use `docker push` to share your images to the [Docker Hub](https://hub.docker.com) Use `docker push` to share your images to the [Docker Hub](https://hub.docker.com)
registry or to a self-hosted one. registry or to a self-hosted one.
@ -36,7 +38,7 @@ running in a terminal, terminates the push operation.
Registry credentials are managed by [docker login](login.md). Registry credentials are managed by [docker login](login.md).
## Concurrent uploads ### Concurrent uploads
By default the Docker daemon will push five layers of an image at a time. By default the Docker daemon will push five layers of an image at a time.
If you are on a low bandwidth connection this may cause timeout issues and you may want to lower If you are on a low bandwidth connection this may cause timeout issues and you may want to lower
@ -45,7 +47,7 @@ this via the `--max-concurrent-uploads` daemon option. See the
## Examples ## Examples
### Pushing a new image to a registry ### Push a new image to a registry
First save the new image by finding the container ID (using [`docker ps`](ps.md)) First save the new image by finding the container ID (using [`docker ps`](ps.md))
and then committing it to a new image name. Note that only `a-z0-9-_.` are and then committing it to a new image name. Note that only `a-z0-9-_.` are
@ -62,6 +64,7 @@ registry:
```bash ```bash
$ docker tag rhel-httpd registry-host:5000/myadmin/rhel-httpd $ docker tag rhel-httpd registry-host:5000/myadmin/rhel-httpd
$ docker push registry-host:5000/myadmin/rhel-httpd $ docker push registry-host:5000/myadmin/rhel-httpd
``` ```

View File

@ -24,4 +24,12 @@ Options:
--help Print usage --help Print usage
``` ```
The `docker rename` command allows the container to be renamed to a different name. ## Description
The `docker rename` command renames a container.
## Examples
```bash
$ docker rename my_container my_new_container
```

View File

@ -24,3 +24,9 @@ Options:
--help Print usage --help Print usage
-t, --time int Seconds to wait for stop before killing the container (default 10) -t, --time int Seconds to wait for stop before killing the container (default 10)
``` ```
## Examples
```bash
$ docker restart my_container
```

View File

@ -29,40 +29,71 @@ Options:
## Examples ## Examples
$ docker rm /redis ### Remove a container
/redis
This will remove the container referenced under the link This will remove the container referenced under the link
`/redis`. `/redis`.
$ docker rm --link /webapp/redis ```bash
/webapp/redis $ docker rm /redis
/redis
```
### Remove a link specified with `--link` on the default bridge network
This will remove the underlying link between `/webapp` and the `/redis` This will remove the underlying link between `/webapp` and the `/redis`
containers removing all network communication. containers on the default bridge network, removing all network communication
between the two containers. This does not apply when `--link` is used with
user-specified networks.
$ docker rm --force redis ```bash
redis $ docker rm --link /webapp/redis
The main process inside the container referenced under the link `/redis` will receive /webapp/redis
```
### Force-remove a running container
This command will force-remove a running container.
```bash
$ docker rm --force redis
redis
```
The main process inside the container referenced under the link `redis` will receive
`SIGKILL`, then the container will be removed. `SIGKILL`, then the container will be removed.
$ docker rm $(docker ps -a -q) ### Remove all stopped containers
```bash
$ docker rm $(docker ps -a -q)
```
This command will delete all stopped containers. The command This command will delete all stopped containers. The command
`docker ps -a -q` will return all existing container IDs and pass them to `docker ps -a -q` will return all existing container IDs and pass them to
the `rm` command which will delete them. Any running containers will not be the `rm` command which will delete them. Any running containers will not be
deleted. deleted.
$ docker rm -v redis ### Remove a container and its volumes
redis
```bash
$ docker rm -v redis
redis
```
This command will remove the container and any volumes associated with it. This command will remove the container and any volumes associated with it.
Note that if a volume was specified with a name, it will not be removed. Note that if a volume was specified with a name, it will not be removed.
$ docker create -v awesome:/foo -v /bar --name hello redis ### Remove a container and selectively remove volumes
hello
$ docker rm -v hello ```bash
$ docker create -v awesome:/foo -v /bar --name hello redis
hello
$ docker rm -v hello
```
In this example, the volume for `/foo` will remain intact, but the volume for In this example, the volume for `/foo` will remain intact, but the volume for
`/bar` will be removed. The same behavior holds for volumes inherited with `/bar` will be removed. The same behavior holds for volumes inherited with

View File

@ -26,58 +26,80 @@ Options:
--no-prune Do not delete untagged parents --no-prune Do not delete untagged parents
``` ```
## Examples
You can remove an image using its short or long ID, its tag, or its digest. If You can remove an image using its short or long ID, its tag, or its digest. If
an image has one or more tag referencing it, you must remove all of them before an image has one or more tag referencing it, you must remove all of them before
the image is removed. Digest references are removed automatically when an image the image is removed. Digest references are removed automatically when an image
is removed by tag. is removed by tag.
$ docker images ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images
test1 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
test2 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
$ docker rmi fd484f19954f REPOSITORY TAG IMAGE ID CREATED SIZE
Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force test1 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
2013/12/11 05:47:16 Error: failed to remove one or more images test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
test2 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
$ docker rmi test1 $ docker rmi fd484f19954f
Untagged: test1:latest
$ docker rmi test2
Untagged: test2:latest
$ docker images Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force
REPOSITORY TAG IMAGE ID CREATED SIZE 2013/12/11 05:47:16 Error: failed to remove one or more images
test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
$ docker rmi test $ docker rmi test1
Untagged: test:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8 Untagged: test1:latest
$ docker rmi test2
Untagged: test2:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
$ docker rmi test
Untagged: test:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
```
If you use the `-f` flag and specify the image's short or long ID, then this If you use the `-f` flag and specify the image's short or long ID, then this
command untags and removes all images that match the specified ID. command untags and removes all images that match the specified ID.
$ docker images ```bash
REPOSITORY TAG IMAGE ID CREATED SIZE $ docker images
test1 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
test2 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
$ docker rmi -f fd484f19954f REPOSITORY TAG IMAGE ID CREATED SIZE
Untagged: test1:latest test1 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
Untagged: test:latest test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
Untagged: test2:latest test2 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
$ docker rmi -f fd484f19954f
Untagged: test1:latest
Untagged: test:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
```
An image pulled by digest has no tag associated with it: An image pulled by digest has no tag associated with it:
$ docker images --digests ```bash
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE $ docker images --digests
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536 9 weeks ago 2.43 MB
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536 9 weeks ago 2.43 MB
```
To remove an image using its digest: To remove an image using its digest:
$ docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf ```bash
Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf $ docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125 Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2 Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2
Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b
```

View File

@ -145,6 +145,8 @@ Options:
-w, --workdir string Working directory inside the container -w, --workdir string Working directory inside the container
``` ```
## Descriptino
The `docker run` command first `creates` a writeable container layer over the The `docker run` command first `creates` a writeable container layer over the
specified image, and then `starts` it using the specified command. That is, specified image, and then `starts` it using the specified command. That is,
`docker run` is equivalent to the API `/containers/create` then `docker run` is equivalent to the API `/containers/create` then
@ -161,12 +163,15 @@ For information on connecting a container to a network, see the ["*Docker networ
### Assign name and allocate pseudo-TTY (--name, -it) ### Assign name and allocate pseudo-TTY (--name, -it)
$ docker run --name test -it debian ```bash
root@d6c0fe130dba:/# exit 13 $ docker run --name test -it debian
$ echo $?
13 root@d6c0fe130dba:/# exit 13
$ docker ps -a | grep test $ echo $?
d6c0fe130dba debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test 13
$ docker ps -a | grep test
d6c0fe130dba debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test
```
This example runs a container named `test` using the `debian:latest` This example runs a container named `test` using the `debian:latest`
image. The `-it` instructs Docker to allocate a pseudo-TTY connected to image. The `-it` instructs Docker to allocate a pseudo-TTY connected to
@ -177,7 +182,9 @@ In the example, the `bash` shell is quit by entering
### Capture container ID (--cidfile) ### Capture container ID (--cidfile)
$ docker run --cidfile /tmp/docker_test.cid ubuntu echo "test" ```bash
$ docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"
```
This will create a container and print `test` to the console. The `cidfile` This will create a container and print `test` to the console. The `cidfile`
flag makes Docker attempt to create a new file and write the container ID to it. flag makes Docker attempt to create a new file and write the container ID to it.
@ -186,19 +193,23 @@ file when `docker run` exits.
### Full container capabilities (--privileged) ### Full container capabilities (--privileged)
$ docker run -t -i --rm ubuntu bash ```bash
root@bc338942ef20:/# mount -t tmpfs none /mnt $ docker run -t -i --rm ubuntu bash
mount: permission denied root@bc338942ef20:/# mount -t tmpfs none /mnt
mount: permission denied
```
This will *not* work, because by default, most potentially dangerous kernel This will *not* work, because by default, most potentially dangerous kernel
capabilities are dropped; including `cap_sys_admin` (which is required to mount capabilities are dropped; including `cap_sys_admin` (which is required to mount
filesystems). However, the `--privileged` flag will allow it to run: filesystems). However, the `--privileged` flag will allow it to run:
$ docker run -t -i --privileged ubuntu bash ```bash
root@50e3f57e16e6:/# mount -t tmpfs none /mnt $ docker run -t -i --privileged ubuntu bash
root@50e3f57e16e6:/# df -h root@50e3f57e16e6:/# mount -t tmpfs none /mnt
Filesystem Size Used Avail Use% Mounted on root@50e3f57e16e6:/# df -h
none 1.9G 0 1.9G 0% /mnt Filesystem Size Used Avail Use% Mounted on
none 1.9G 0 1.9G 0% /mnt
```
The `--privileged` flag gives *all* capabilities to the container, and it also The `--privileged` flag gives *all* capabilities to the container, and it also
lifts all the limitations enforced by the `device` cgroup controller. In other lifts all the limitations enforced by the `device` cgroup controller. In other
@ -207,14 +218,18 @@ flag exists to allow special use-cases, like running Docker within Docker.
### Set working directory (-w) ### Set working directory (-w)
$ docker run -w /path/to/dir/ -i -t ubuntu pwd ```bash
$ docker run -w /path/to/dir/ -i -t ubuntu pwd
```
The `-w` lets the command being executed inside directory given, here The `-w` lets the command being executed inside directory given, here
`/path/to/dir/`. If the path does not exist it is created inside the container. `/path/to/dir/`. If the path does not exist it is created inside the container.
### Set storage driver options per container ### Set storage driver options per container
$ docker run -it --storage-opt size=120G fedora /bin/bash ```bash
$ docker run -it --storage-opt size=120G fedora /bin/bash
```
This (size) will allow to set the container rootfs size to 120G at creation time. This (size) will allow to set the container rootfs size to 120G at creation time.
This option is only available for the `devicemapper`, `btrfs`, `overlay2`, This option is only available for the `devicemapper`, `btrfs`, `overlay2`,
@ -227,14 +242,18 @@ Under these conditions, user can pass any size less then the backing fs size.
### Mount tmpfs (--tmpfs) ### Mount tmpfs (--tmpfs)
$ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image ```bash
$ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image
```
The `--tmpfs` flag mounts an empty tmpfs into the container with the `rw`, The `--tmpfs` flag mounts an empty tmpfs into the container with the `rw`,
`noexec`, `nosuid`, `size=65536k` options. `noexec`, `nosuid`, `size=65536k` options.
### Mount volume (-v, --read-only) ### Mount volume (-v, --read-only)
$ docker run -v `pwd`:`pwd` -w `pwd` -i -t ubuntu pwd ```bash
$ docker run -v `pwd`:`pwd` -w `pwd` -i -t ubuntu pwd
```
The `-v` flag mounts the current working directory into the container. The `-w` The `-v` flag mounts the current working directory into the container. The `-w`
lets the command being executed inside the current working directory, by lets the command being executed inside the current working directory, by
@ -242,21 +261,27 @@ changing into the directory to the value returned by `pwd`. So this
combination executes the command using the container, but inside the combination executes the command using the container, but inside the
current working directory. current working directory.
$ docker run -v /doesnt/exist:/foo -w /foo -i -t ubuntu bash ```bash
$ docker run -v /doesnt/exist:/foo -w /foo -i -t ubuntu bash
```
When the host directory of a bind-mounted volume doesn't exist, Docker When the host directory of a bind-mounted volume doesn't exist, Docker
will automatically create this directory on the host for you. In the will automatically create this directory on the host for you. In the
example above, Docker will create the `/doesnt/exist` example above, Docker will create the `/doesnt/exist`
folder before starting your container. folder before starting your container.
$ docker run --read-only -v /icanwrite busybox touch /icanwrite/here ```bash
$ docker run --read-only -v /icanwrite busybox touch /icanwrite/here
```
Volumes can be used in combination with `--read-only` to control where Volumes can be used in combination with `--read-only` to control where
a container writes files. The `--read-only` flag mounts the container's root a container writes files. The `--read-only` flag mounts the container's root
filesystem as read only prohibiting writes to locations other than the filesystem as read only prohibiting writes to locations other than the
specified volumes for the container. specified volumes for the container.
$ docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh ```bash
$ docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh
```
By bind-mounting the docker unix socket and statically linked docker By bind-mounting the docker unix socket and statically linked docker
binary (refer to [get the linux binary]( binary (refer to [get the linux binary](
@ -264,45 +289,55 @@ https://docs.docker.com/engine/installation/binaries/#/get-the-linux-binary)),
you give the container the full access to create and manipulate the host's you give the container the full access to create and manipulate the host's
Docker daemon. Docker daemon.
On Windows, the paths must be specified using Windows-style semantics. On Windows, the paths must be specified using Windows-style semantics.
PS C:\> docker run -v c:\foo:c:\dest microsoft/nanoserver cmd /s /c type c:\dest\somefile.txt ```powershell
Contents of file PS C:\> docker run -v c:\foo:c:\dest microsoft/nanoserver cmd /s /c type c:\dest\somefile.txt
Contents of file
PS C:\> docker run -v c:\foo:d: microsoft/nanoserver cmd /s /c type d:\somefile.txt
Contents of file
The following examples will fail when using Windows-based containers, as the PS C:\> docker run -v c:\foo:d: microsoft/nanoserver cmd /s /c type d:\somefile.txt
destination of a volume or bind-mount inside the container must be one of: Contents of file
```
The following examples will fail when using Windows-based containers, as the
destination of a volume or bind-mount inside the container must be one of:
a non-existing or empty directory; or a drive other than C:. Further, the source a non-existing or empty directory; or a drive other than C:. Further, the source
of a bind mount must be a local directory, not a file. of a bind mount must be a local directory, not a file.
net use z: \\remotemachine\share ```powershell
docker run -v z:\foo:c:\dest ... net use z: \\remotemachine\share
docker run -v \\uncpath\to\directory:c:\dest ... docker run -v z:\foo:c:\dest ...
docker run -v c:\foo\somefile.txt:c:\dest ... docker run -v \\uncpath\to\directory:c:\dest ...
docker run -v c:\foo:c: ... docker run -v c:\foo\somefile.txt:c:\dest ...
docker run -v c:\foo:c:\existing-directory-with-contents ... docker run -v c:\foo:c: ...
docker run -v c:\foo:c:\existing-directory-with-contents ...
```
For in-depth information about volumes, refer to [manage data in containers](https://docs.docker.com/engine/tutorials/dockervolumes/) For in-depth information about volumes, refer to [manage data in containers](https://docs.docker.com/engine/tutorials/dockervolumes/)
### Publish or expose port (-p, --expose) ### Publish or expose port (-p, --expose)
$ docker run -p 127.0.0.1:80:8080 ubuntu bash ```bash
$ docker run -p 127.0.0.1:80:8080 ubuntu bash
```
This binds port `8080` of the container to port `80` on `127.0.0.1` of the host This binds port `8080` of the container to port `80` on `127.0.0.1` of the host
machine. The [Docker User machine. The [Docker User
Guide](https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/) Guide](https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/)
explains in detail how to manipulate ports in Docker. explains in detail how to manipulate ports in Docker.
$ docker run --expose 80 ubuntu bash ```bash
$ docker run --expose 80 ubuntu bash
```
This exposes port `80` of the container without publishing the port to the host This exposes port `80` of the container without publishing the port to the host
system's interfaces. system's interfaces.
### Set environment variables (-e, --env, --env-file) ### Set environment variables (-e, --env, --env-file)
$ docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash ```bash
$ docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash
```
This sets simple (non-array) environmental variables in the container. For This sets simple (non-array) environmental variables in the container. For
illustration all three illustration all three
@ -318,10 +353,12 @@ Regardless of the order of these three flags, the `--env-file` are processed
first, and then `-e`, `--env` flags. This way, the `-e` or `--env` will first, and then `-e`, `--env` flags. This way, the `-e` or `--env` will
override variables as needed. override variables as needed.
$ cat ./env.list ```bash
TEST_FOO=BAR $ cat ./env.list
$ docker run --env TEST_FOO="This is a test" --env-file ./env.list busybox env | grep TEST_FOO TEST_FOO=BAR
TEST_FOO=This is a test $ docker run --env TEST_FOO="This is a test" --env-file ./env.list busybox env | grep TEST_FOO
TEST_FOO=This is a test
```
The `--env-file` flag takes a filename as an argument and expects each line The `--env-file` flag takes a filename as an argument and expects each line
to be in the `VAR=VAL` format, mimicking the argument passed to `--env`. Comment to be in the `VAR=VAL` format, mimicking the argument passed to `--env`. Comment
@ -329,53 +366,57 @@ lines need only be prefixed with `#`
An example of a file passed with `--env-file` An example of a file passed with `--env-file`
$ cat ./env.list ```bash
TEST_FOO=BAR $ cat ./env.list
TEST_FOO=BAR
# this is a comment # this is a comment
TEST_APP_DEST_HOST=10.10.0.127 TEST_APP_DEST_HOST=10.10.0.127
TEST_APP_DEST_PORT=8888 TEST_APP_DEST_PORT=8888
_TEST_BAR=FOO _TEST_BAR=FOO
TEST_APP_42=magic TEST_APP_42=magic
helloWorld=true helloWorld=true
123qwe=bar 123qwe=bar
org.spring.config=something org.spring.config=something
# pass through this variable from the caller # pass through this variable from the caller
TEST_PASSTHROUGH TEST_PASSTHROUGH
$ TEST_PASSTHROUGH=howdy docker run --env-file ./env.list busybox env $ TEST_PASSTHROUGH=howdy docker run --env-file ./env.list busybox env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=5198e0745561 HOSTNAME=5198e0745561
TEST_FOO=BAR TEST_FOO=BAR
TEST_APP_DEST_HOST=10.10.0.127 TEST_APP_DEST_HOST=10.10.0.127
TEST_APP_DEST_PORT=8888 TEST_APP_DEST_PORT=8888
_TEST_BAR=FOO _TEST_BAR=FOO
TEST_APP_42=magic TEST_APP_42=magic
helloWorld=true helloWorld=true
TEST_PASSTHROUGH=howdy TEST_PASSTHROUGH=howdy
HOME=/root HOME=/root
123qwe=bar 123qwe=bar
org.spring.config=something org.spring.config=something
$ docker run --env-file ./env.list busybox env $ docker run --env-file ./env.list busybox env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=5198e0745561 HOSTNAME=5198e0745561
TEST_FOO=BAR TEST_FOO=BAR
TEST_APP_DEST_HOST=10.10.0.127 TEST_APP_DEST_HOST=10.10.0.127
TEST_APP_DEST_PORT=8888 TEST_APP_DEST_PORT=8888
_TEST_BAR=FOO _TEST_BAR=FOO
TEST_APP_42=magic TEST_APP_42=magic
helloWorld=true helloWorld=true
TEST_PASSTHROUGH= TEST_PASSTHROUGH=
HOME=/root HOME=/root
123qwe=bar 123qwe=bar
org.spring.config=something org.spring.config=something
```
### Set metadata on container (-l, --label, --label-file) ### Set metadata on container (-l, --label, --label-file)
A label is a `key=value` pair that applies metadata to a container. To label a container with two labels: A label is a `key=value` pair that applies metadata to a container. To label a container with two labels:
$ docker run -l my-label --label com.example.foo=bar ubuntu bash ```bash
$ docker run -l my-label --label com.example.foo=bar ubuntu bash
```
The `my-label` key doesn't specify a value so the label defaults to an empty The `my-label` key doesn't specify a value so the label defaults to an empty
string(`""`). To add multiple labels, repeat the label flag (`-l` or `--label`). string(`""`). To add multiple labels, repeat the label flag (`-l` or `--label`).
@ -388,18 +429,22 @@ Use the `--label-file` flag to load multiple labels from a file. Delimit each
label in the file with an EOL mark. The example below loads labels from a label in the file with an EOL mark. The example below loads labels from a
labels file in the current directory: labels file in the current directory:
$ docker run --label-file ./labels ubuntu bash ```bash
$ docker run --label-file ./labels ubuntu bash
```
The label-file format is similar to the format for loading environment The label-file format is similar to the format for loading environment
variables. (Unlike environment variables, labels are not visible to processes variables. (Unlike environment variables, labels are not visible to processes
running inside a container.) The following example illustrates a label-file running inside a container.) The following example illustrates a label-file
format: format:
com.example.label1="a label" ```none
com.example.label1="a label"
# this is a comment # this is a comment
com.example.label2=another\ label com.example.label2=another\ label
com.example.label3 com.example.label3
```
You can load multiple label-files by supplying multiple `--label-file` flags. You can load multiple label-files by supplying multiple `--label-file` flags.
@ -431,16 +476,18 @@ or name. For `overlay` networks or custom plugins that support multi-host
connectivity, containers connected to the same multi-host network but launched connectivity, containers connected to the same multi-host network but launched
from different Engines can also communicate in this way. from different Engines can also communicate in this way.
**Note**: Service discovery is unavailable on the default bridge network. > **Note**: Service discovery is unavailable on the default bridge network.
Containers can communicate via their IP addresses by default. To communicate > Containers can communicate via their IP addresses by default. To communicate
by name, they must be linked. > by name, they must be linked.
You can disconnect a container from a network using the `docker network You can disconnect a container from a network using the `docker network
disconnect` command. disconnect` command.
### Mount volumes from container (--volumes-from) ### Mount volumes from container (--volumes-from)
$ docker run --volumes-from 777f7dc92da7 --volumes-from ba8c0c54f0f2:ro -i -t ubuntu pwd ```bash
$ docker run --volumes-from 777f7dc92da7 --volumes-from ba8c0c54f0f2:ro -i -t ubuntu pwd
```
The `--volumes-from` flag mounts all the defined volumes from the referenced The `--volumes-from` flag mounts all the defined volumes from the referenced
containers. Containers can be specified by repetitions of the `--volumes-from` containers. Containers can be specified by repetitions of the `--volumes-from`
@ -468,18 +515,24 @@ The `-a` flag tells `docker run` to bind to the container's `STDIN`, `STDOUT`
or `STDERR`. This makes it possible to manipulate the output and input as or `STDERR`. This makes it possible to manipulate the output and input as
needed. needed.
$ echo "test" | docker run -i -a stdin ubuntu cat - ```bash
$ echo "test" | docker run -i -a stdin ubuntu cat -
```
This pipes data into a container and prints the container's ID by attaching This pipes data into a container and prints the container's ID by attaching
only to the container's `STDIN`. only to the container's `STDIN`.
$ docker run -a stderr ubuntu echo test ```bash
$ docker run -a stderr ubuntu echo test
```
This isn't going to print anything unless there's an error because we've This isn't going to print anything unless there's an error because we've
only attached to the `STDERR` of the container. The container's logs only attached to the `STDERR` of the container. The container's logs
still store what's been written to `STDERR` and `STDOUT`. still store what's been written to `STDERR` and `STDOUT`.
$ cat somefile | docker run -i -a stdin mybuilder dobuild ```bash
$ cat somefile | docker run -i -a stdin mybuilder dobuild
```
This is how piping a file into a container could be done for a build. This is how piping a file into a container could be done for a build.
The container's ID will be printed after the build is done and the build The container's ID will be printed after the build is done and the build
@ -489,10 +542,18 @@ retrieve the container's ID once the container has finished running.
### Add host device to container (--device) ### Add host device to container (--device)
$ docker run --device=/dev/sdc:/dev/xvdc --device=/dev/sdd --device=/dev/zero:/dev/nulo -i -t ubuntu ls -l /dev/{xvdc,sdd,nulo} ```bash
brw-rw---- 1 root disk 8, 2 Feb 9 16:05 /dev/xvdc {% raw %}
brw-rw---- 1 root disk 8, 3 Feb 9 16:05 /dev/sdd $ docker run --device=/dev/sdc:/dev/xvdc \
crw-rw-rw- 1 root root 1, 5 Feb 9 16:05 /dev/nulo --device=/dev/sdd --device=/dev/zero:/dev/nulo \
-i -t \
ubuntu ls -l /dev/{xvdc,sdd,nulo}
brw-rw---- 1 root disk 8, 2 Feb 9 16:05 /dev/xvdc
brw-rw---- 1 root disk 8, 3 Feb 9 16:05 /dev/sdd
crw-rw-rw- 1 root root 1, 5 Feb 9 16:05 /dev/nulo
{% endraw %}
```
It is often necessary to directly expose devices to a container. The `--device` It is often necessary to directly expose devices to a container. The `--device`
option enables that. For example, a specific block storage device or loop option enables that. For example, a specific block storage device or loop
@ -503,24 +564,24 @@ By default, the container will be able to `read`, `write` and `mknod` these devi
This can be overridden using a third `:rwm` set of options to each `--device` This can be overridden using a third `:rwm` set of options to each `--device`
flag: flag:
```bash
$ docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk /dev/xvdc
$ docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk /dev/xvdc Command (m for help): q
$ docker run --device=/dev/sda:/dev/xvdc:r --rm -it ubuntu fdisk /dev/xvdc
You will not be able to write the partition table.
Command (m for help): q Command (m for help): q
$ docker run --device=/dev/sda:/dev/xvdc:r --rm -it ubuntu fdisk /dev/xvdc
You will not be able to write the partition table.
Command (m for help): q $ docker run --device=/dev/sda:/dev/xvdc:rw --rm -it ubuntu fdisk /dev/xvdc
$ docker run --device=/dev/sda:/dev/xvdc:rw --rm -it ubuntu fdisk /dev/xvdc Command (m for help): q
Command (m for help): q $ docker run --device=/dev/sda:/dev/xvdc:m --rm -it ubuntu fdisk /dev/xvdc
fdisk: unable to open /dev/xvdc: Operation not permitted
```
$ docker run --device=/dev/sda:/dev/xvdc:m --rm -it ubuntu fdisk /dev/xvdc > **Note**: `--device` cannot be safely used with ephemeral devices. Block devices
fdisk: unable to open /dev/xvdc: Operation not permitted
> **Note:**
> `--device` cannot be safely used with ephemeral devices. Block devices
> that may be removed should not be added to untrusted containers with > that may be removed should not be added to untrusted containers with
> `--device`. > `--device`.
@ -530,54 +591,15 @@ Use Docker's `--restart` to specify a container's *restart policy*. A restart
policy controls whether the Docker daemon restarts a container after exit. policy controls whether the Docker daemon restarts a container after exit.
Docker supports the following restart policies: Docker supports the following restart policies:
<table> | Policy | Result |
<thead> |-------------------|-----------------------------------------|
<tr> | `no` | Do not automatically restart the container when it exits. This is the default. |
<th>Policy</th> | `failure` | Restart only if the container exits with a non-zero exit status. Optionally, limit the number of restart retries the Docker daemon attempts. |
<th>Result</th> | `always` | Always restart the container regardless of the exit status. When you specify always, the Docker daemon will try to restart the container indefinitely. The container will also always start on daemon startup, regardless of the current state of the container. |
</tr>
</thead>
<tbody>
<tr>
<td><strong>no</strong></td>
<td>
Do not automatically restart the container when it exits. This is the
default.
</td>
</tr>
<tr>
<td>
<span style="white-space: nowrap">
<strong>on-failure</strong>[:max-retries]
</span>
</td>
<td>
Restart only if the container exits with a non-zero exit status.
Optionally, limit the number of restart retries the Docker
daemon attempts.
</td>
</tr>
<tr>
<td><strong>always</strong></td>
<td>
Always restart the container regardless of the exit status.
When you specify always, the Docker daemon will try to restart
the container indefinitely. The container will also always start
on daemon startup, regardless of the current state of the container.
</td>
</tr>
<tr>
<td><strong>unless-stopped</strong></td>
<td>
Always restart the container regardless of the exit status, but
do not start it on daemon startup if the container has been put
to a stopped state before.
</td>
</tr>
</tbody>
</table>
$ docker run --restart=always redis ```bash
$ docker run --restart=always redis
```
This will run the `redis` container with a restart policy of **always** This will run the `redis` container with a restart policy of **always**
so that if the container exits, Docker will restart it. so that if the container exits, Docker will restart it.
@ -592,14 +614,17 @@ You can add other hosts into a container's `/etc/hosts` file by using one or
more `--add-host` flags. This example adds a static address for a host named more `--add-host` flags. This example adds a static address for a host named
`docker`: `docker`:
$ docker run --add-host=docker:10.180.0.1 --rm -it debian ```bash
root@f38c87f2a42d:/# ping docker $ docker run --add-host=docker:10.180.0.1 --rm -it debian
PING docker (10.180.0.1): 48 data bytes
56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms root@f38c87f2a42d:/# ping docker
56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms PING docker (10.180.0.1): 48 data bytes
^C--- docker ping statistics --- 56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms
2 packets transmitted, 2 packets received, 0% packet loss 56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms
round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms ^C--- docker ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms
```
Sometimes you need to connect to the Docker host from within your Sometimes you need to connect to the Docker host from within your
container. To enable this, pass the Docker host's IP address to container. To enable this, pass the Docker host's IP address to
@ -610,8 +635,12 @@ The flags you pass to `ip addr show` depend on whether you are
using IPv4 or IPv6 networking in your containers. Use the following using IPv4 or IPv6 networking in your containers. Use the following
flags for IPv4 address retrieval for a network device named `eth0`: flags for IPv4 address retrieval for a network device named `eth0`:
$ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1` ```bash
$ docker run --add-host=docker:${HOSTIP} --rm -it debian {% raw %}
$ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1`
$ docker run --add-host=docker:${HOSTIP} --rm -it debian
{% endraw %}
```
For IPv6 use the `-6` flag instead of the `-4` flag. For other network For IPv6 use the `-6` flag instead of the `-4` flag. For other network
devices, replace `eth0` with the correct device name (for example `docker0` devices, replace `eth0` with the correct device name (for example `docker0`
@ -624,15 +653,19 @@ available in the default container, you can set these using the `--ulimit` flag.
`--ulimit` is specified with a soft and hard limit as such: `--ulimit` is specified with a soft and hard limit as such:
`<type>=<soft limit>[:<hard limit>]`, for example: `<type>=<soft limit>[:<hard limit>]`, for example:
$ docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n" ```bash
1024 $ docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n"
1024
```
> **Note:** > **Note**: If you do not provide a `hard limit`, the `soft limit` will be used
> If you do not provide a `hard limit`, the `soft limit` will be used
> for both values. If no `ulimits` are set, they will be inherited from > for both values. If no `ulimits` are set, they will be inherited from
> the default `ulimits` set on the daemon. `as` option is disabled now. > the default `ulimits` set on the daemon. `as` option is disabled now.
> In other words, the following script is not supported: > In other words, the following script is not supported:
> `$ docker run -it --ulimit as=1024 fedora /bin/bash` >
> ```bash
> $ docker run -it --ulimit as=1024 fedora /bin/bash`
> ```
The values are sent to the appropriate `syscall` as they are set. The values are sent to the appropriate `syscall` as they are set.
Docker doesn't perform any byte conversion. Take this into account when setting the values. Docker doesn't perform any byte conversion. Take this into account when setting the values.
@ -643,10 +676,15 @@ Be careful setting `nproc` with the `ulimit` flag as `nproc` is designed by Linu
maximum number of processes available to a user, not to a container. For example, start four maximum number of processes available to a user, not to a container. For example, start four
containers with `daemon` user: containers with `daemon` user:
docker run -d -u daemon --ulimit nproc=3 busybox top ```bash
docker run -d -u daemon --ulimit nproc=3 busybox top $ docker run -d -u daemon --ulimit nproc=3 busybox top
docker run -d -u daemon --ulimit nproc=3 busybox top
docker run -d -u daemon --ulimit nproc=3 busybox top $ docker run -d -u daemon --ulimit nproc=3 busybox top
$ docker run -d -u daemon --ulimit nproc=3 busybox top
$ docker run -d -u daemon --ulimit nproc=3 busybox top
```
The 4th container fails and reports "[8] System error: resource temporarily unavailable" error. The 4th container fails and reports "[8] System error: resource temporarily unavailable" error.
This fails because the caller set `nproc=3` resulting in the first three containers using up This fails because the caller set `nproc=3` resulting in the first three containers using up
@ -718,8 +756,9 @@ The `--sysctl` sets namespaced kernel parameters (sysctls) in the
container. For example, to turn on IP forwarding in the containers container. For example, to turn on IP forwarding in the containers
network namespace, run this command: network namespace, run this command:
$ docker run --sysctl net.ipv4.ip_forward=1 someimage ```bash
$ docker run --sysctl net.ipv4.ip_forward=1 someimage
```
> **Note**: Not all sysctls are namespaced. Docker does not support changing sysctls > **Note**: Not all sysctls are namespaced. Docker does not support changing sysctls
> inside of a container that also modify the host system. As the kernel > inside of a container that also modify the host system. As the kernel
@ -727,14 +766,17 @@ network namespace, run this command:
#### Currently supported sysctls #### Currently supported sysctls
`IPC Namespace`: - `IPC Namespace`:
```none
kernel.msgmax, kernel.msgmnb, kernel.msgmni, kernel.sem, kernel.shmall, kernel.shmmax, kernel.shmmni, kernel.shm_rmid_forced kernel.msgmax, kernel.msgmnb, kernel.msgmni, kernel.sem, kernel.shmall, kernel.shmmax, kernel.shmmni, kernel.shm_rmid_forced
Sysctls beginning with fs.mqueue.* Sysctls beginning with fs.mqueue.*
```
If you use the `--ipc=host` option these sysctls will not be allowed. If you use the `--ipc=host` option these sysctls will not be allowed.
`Network Namespace`: - `Network Namespace`:
Sysctls beginning with net.*
Sysctls beginning with net.*
If you use the `--network=host` option using these sysctls will not be allowed. If you use the `--network=host` option using these sysctls will not be allowed.

View File

@ -25,21 +25,38 @@ Options:
-o, --output string Write to a file, instead of STDOUT -o, --output string Write to a file, instead of STDOUT
``` ```
## Description
Produces a tarred repository to the standard output stream. Produces a tarred repository to the standard output stream.
Contains all parent layers, and all tags + versions, or specified `repo:tag`, for Contains all parent layers, and all tags + versions, or specified `repo:tag`, for
each argument provided. each argument provided.
It is used to create a backup that can then be used with `docker load` ## Examples
$ docker save busybox > busybox.tar ### Create a backup that can then be used with `docker load`.
$ ls -sh busybox.tar
2.7M busybox.tar
$ docker save --output busybox.tar busybox
$ ls -sh busybox.tar
2.7M busybox.tar
$ docker save -o fedora-all.tar fedora
$ docker save -o fedora-latest.tar fedora:latest
It is even useful to cherry-pick particular tags of an image repository ```bash
$ docker save busybox > busybox.tar
$ docker save -o ubuntu.tar ubuntu:lucid ubuntu:saucy $ ls -sh busybox.tar
2.7M busybox.tar
$ docker save --output busybox.tar busybox
$ ls -sh busybox.tar
2.7M busybox.tar
$ docker save -o fedora-all.tar fedora
$ docker save -o fedora-latest.tar fedora:latest
```
### Cherry-pick particular tags
You can even cherry-pick particular tags of an image repository.
```bash
$ docker save -o ubuntu.tar ubuntu:lucid ubuntu:saucy
```

View File

@ -30,13 +30,14 @@ Options:
--no-trunc Don't truncate output --no-trunc Don't truncate output
``` ```
## Description
Search [Docker Hub](https://hub.docker.com) for images Search [Docker Hub](https://hub.docker.com) for images
See [*Find Public Images on Docker Hub*](https://docs.docker.com/engine/tutorials/dockerrepos/#searching-for-images) for See [*Find Public Images on Docker Hub*](https://docs.docker.com/engine/tutorials/dockerrepos/#searching-for-images) for
more details on finding shared images from the command line. more details on finding shared images from the command line.
> **Note:** > **Note**: Search queries return a maximum of 25 results.
> Search queries will only return up to 25 results
## Examples ## Examples
@ -44,52 +45,57 @@ more details on finding shared images from the command line.
This example displays images with a name containing 'busybox': This example displays images with a name containing 'busybox':
$ docker search busybox ```none
NAME DESCRIPTION STARS OFFICIAL AUTOMATED $ docker search busybox
busybox Busybox base image. 316 [OK]
progrium/busybox 50 [OK] NAME DESCRIPTION STARS OFFICIAL AUTOMATED
radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK] busybox Busybox base image. 316 [OK]
odise/busybox-python 2 [OK] progrium/busybox 50 [OK]
azukiapp/busybox This image is meant to be used as the base... 2 [OK] radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK]
ofayau/busybox-jvm Prepare busybox to install a 32 bits JVM. 1 [OK] odise/busybox-python 2 [OK]
shingonoide/archlinux-busybox Arch Linux, a lightweight and flexible Lin... 1 [OK] azukiapp/busybox This image is meant to be used as the base... 2 [OK]
odise/busybox-curl 1 [OK] ofayau/busybox-jvm Prepare busybox to install a 32 bits JVM. 1 [OK]
ofayau/busybox-libc32 Busybox with 32 bits (and 64 bits) libs 1 [OK] shingonoide/archlinux-busybox Arch Linux, a lightweight and flexible Lin... 1 [OK]
peelsky/zulu-openjdk-busybox 1 [OK] odise/busybox-curl 1 [OK]
skomma/busybox-data Docker image suitable for data volume cont... 1 [OK] ofayau/busybox-libc32 Busybox with 32 bits (and 64 bits) libs 1 [OK]
elektritter/busybox-teamspeak Lightweight teamspeak3 container based on... 1 [OK] peelsky/zulu-openjdk-busybox 1 [OK]
socketplane/busybox 1 [OK] skomma/busybox-data Docker image suitable for data volume cont... 1 [OK]
oveits/docker-nginx-busybox This is a tiny NginX docker image based on... 0 [OK] elektritter/busybox-teamspeak Lightweight teamspeak3 container based on... 1 [OK]
ggtools/busybox-ubuntu Busybox ubuntu version with extra goodies 0 [OK] socketplane/busybox 1 [OK]
nikfoundas/busybox-confd Minimal busybox based distribution of confd 0 [OK] oveits/docker-nginx-busybox This is a tiny NginX docker image based on... 0 [OK]
openshift/busybox-http-app 0 [OK] ggtools/busybox-ubuntu Busybox ubuntu version with extra goodies 0 [OK]
jllopis/busybox 0 [OK] nikfoundas/busybox-confd Minimal busybox based distribution of confd 0 [OK]
swyckoff/busybox 0 [OK] openshift/busybox-http-app 0 [OK]
powellquiring/busybox 0 [OK] jllopis/busybox 0 [OK]
williamyeh/busybox-sh Docker image for BusyBox's sh 0 [OK] swyckoff/busybox 0 [OK]
simplexsys/busybox-cli-powered Docker busybox images, with a few often us... 0 [OK] powellquiring/busybox 0 [OK]
fhisamoto/busybox-java Busybox java 0 [OK] williamyeh/busybox-sh Docker image for BusyBox's sh 0 [OK]
scottabernethy/busybox 0 [OK] simplexsys/busybox-cli-powered Docker busybox images, with a few often us... 0 [OK]
marclop/busybox-solr fhisamoto/busybox-java Busybox java 0 [OK]
scottabernethy/busybox 0 [OK]
marclop/busybox-solr
```
### Display non-truncated description (--no-trunc) ### Display non-truncated description (--no-trunc)
This example displays images with a name containing 'busybox', This example displays images with a name containing 'busybox',
at least 3 stars and the description isn't truncated in the output: at least 3 stars and the description isn't truncated in the output:
$ docker search --stars=3 --no-trunc busybox ```bash
NAME DESCRIPTION STARS OFFICIAL AUTOMATED $ docker search --stars=3 --no-trunc busybox
busybox Busybox base image. 325 [OK] NAME DESCRIPTION STARS OFFICIAL AUTOMATED
progrium/busybox 50 [OK] busybox Busybox base image. 325 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made from scratch. Comes in git and cURL flavors. 8 [OK] progrium/busybox 50 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made from scratch. Comes in git and cURL flavors. 8 [OK]
```
## Limit search results (--limit) ### Limit search results (--limit)
The flag `--limit` is the maximum number of results returned by a search. This value could The flag `--limit` is the maximum number of results returned by a search. This value could
be in the range between 1 and 100. The default value of `--limit` is 25. be in the range between 1 and 100. The default value of `--limit` is 25.
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there is more The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there is more
than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`)
@ -101,34 +107,43 @@ The currently supported filters are:
* is-official (true|false) - is the image official or not * is-official (true|false) - is the image official or not
### stars #### stars
This example displays images with a name containing 'busybox' and at This example displays images with a name containing 'busybox' and at
least 3 stars: least 3 stars:
$ docker search --filter stars=3 busybox ```bash
NAME DESCRIPTION STARS OFFICIAL AUTOMATED $ docker search --filter stars=3 busybox
busybox Busybox base image. 325 [OK]
progrium/busybox 50 [OK] NAME DESCRIPTION STARS OFFICIAL AUTOMATED
radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK] busybox Busybox base image. 325 [OK]
progrium/busybox 50 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK]
```
### is-automated #### is-automated
This example displays images with a name containing 'busybox' This example displays images with a name containing 'busybox'
and are automated builds: and are automated builds:
$ docker search --filter is-automated busybox ```bash
NAME DESCRIPTION STARS OFFICIAL AUTOMATED $ docker search --filter is-automated busybox
progrium/busybox 50 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK]
### is-official NAME DESCRIPTION STARS OFFICIAL AUTOMATED
progrium/busybox 50 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK]
```
#### is-official
This example displays images with a name containing 'busybox', at least This example displays images with a name containing 'busybox', at least
3 stars and are official builds: 3 stars and are official builds:
$ docker search --filter "is-official=true" --filter "stars=3" busybox ```bash
NAME DESCRIPTION STARS OFFICIAL AUTOMATED $ docker search --filter "is-official=true" --filter "stars=3" busybox
progrium/busybox 50 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK] NAME DESCRIPTION STARS OFFICIAL AUTOMATED
progrium/busybox 50 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK]
```

View File

@ -25,6 +25,8 @@ Options:
-l, --label list Secret labels (default []) -l, --label list Secret labels (default [])
``` ```
## Description
Creates a secret using standard input or from a file for the secret content. You must run this Creates a secret using standard input or from a file for the secret content. You must run this
command on a manager node. command on a manager node.
@ -45,9 +47,11 @@ mhv17xfe3gh6xc4rij5orpfds my_secret 2016-10-27 23:25:43.90918108
```bash ```bash
$ docker secret create my_secret ./secret.json $ docker secret create my_secret ./secret.json
mhv17xfe3gh6xc4rij5orpfds mhv17xfe3gh6xc4rij5orpfds
$ docker secret ls $ docker secret ls
ID NAME CREATED UPDATED SIZE ID NAME CREATED UPDATED SIZE
mhv17xfe3gh6xc4rij5orpfds my_secret 2016-10-27 23:25:43.909181089 +0000 UTC 2016-10-27 23:25:43.909181089 +0000 UTC 1679 mhv17xfe3gh6xc4rij5orpfds my_secret 2016-10-27 23:25:43.909181089 +0000 UTC 2016-10-27 23:25:43.909181089 +0000 UTC 1679
``` ```
@ -55,10 +59,16 @@ mhv17xfe3gh6xc4rij5orpfds my_secret 2016-10-27 23:25:43.90918108
### Create a secret with labels ### Create a secret with labels
```bash ```bash
$ docker secret create --label env=dev --label rev=20161102 my_secret ./secret.json $ docker secret create --label env=dev \
jtn7g6aukl5ky7nr9gvwafoxh --label rev=20161102 \
my_secret ./secret.json
jtn7g6aukl5ky7nr9gvwafoxh
```
```none
$ docker secret inspect my_secret $ docker secret inspect my_secret
[ [
{ {
"ID": "jtn7g6aukl5ky7nr9gvwafoxh", "ID": "jtn7g6aukl5ky7nr9gvwafoxh",
@ -79,11 +89,10 @@ $ docker secret inspect my_secret
"SecretSize": 1679 "SecretSize": 1679
} }
] ]
``` ```
## Related information ## Related commands
* [secret inspect](secret_inspect.md) * [secret inspect](secret_inspect.md)
* [secret ls](secret_ls.md) * [secret ls](secret_ls.md)

View File

@ -25,6 +25,7 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Inspects the specified secret. This command has to be run targeting a manager Inspects the specified secret. This command has to be run targeting a manager
node. node.
@ -37,7 +38,7 @@ describes all the details of the format.
## Examples ## Examples
### Inspecting a secret by name or ID ### Inspect a secret by name or ID
You can inspect a secret, either by its *name*, or *ID* You can inspect a secret, either by its *name*, or *ID*
@ -49,8 +50,9 @@ ID NAME CREATED
mhv17xfe3gh6xc4rij5orpfds secret.json 2016-10-27 23:25:43.909181089 +0000 UTC 2016-10-27 23:25:43.909181089 +0000 UTC mhv17xfe3gh6xc4rij5orpfds secret.json 2016-10-27 23:25:43.909181089 +0000 UTC 2016-10-27 23:25:43.909181089 +0000 UTC
``` ```
```bash ```none
$ docker secret inspect secret.json $ docker secret inspect secret.json
[ [
{ {
"ID": "mhv17xfe3gh6xc4rij5orpfds", "ID": "mhv17xfe3gh6xc4rij5orpfds",
@ -66,19 +68,22 @@ $ docker secret inspect secret.json
] ]
``` ```
### Formatting secret output ### Formatting
You can use the --format option to obtain specific information about a You can use the --format option to obtain specific information about a
secret. The following example command outputs the creation time of the secret. The following example command outputs the creation time of the
secret. secret.
```bash{% raw %} ```bash
{% raw %}
$ docker secret inspect --format='{{.CreatedAt}}' mhv17xfe3gh6xc4rij5orpfds $ docker secret inspect --format='{{.CreatedAt}}' mhv17xfe3gh6xc4rij5orpfds
2016-10-27 23:25:43.909181089 +0000 UTC 2016-10-27 23:25:43.909181089 +0000 UTC
{% endraw %}``` {% endraw %}
```
## Related information ## Related commands
* [secret create](secret_create.md) * [secret create](secret_create.md)
* [secret ls](secret_ls.md) * [secret ls](secret_ls.md)

View File

@ -27,16 +27,20 @@ Options:
-q, --quiet Only display IDs -q, --quiet Only display IDs
``` ```
## Description
Run this command on a manager node to list the secrets in the swarm. Run this command on a manager node to list the secrets in the swarm.
## Examples ## Examples
```bash ```bash
$ docker secret ls $ docker secret ls
ID NAME CREATED UPDATED ID NAME CREATED UPDATED
mhv17xfe3gh6xc4rij5orpfds secret.json 2016-10-27 23:25:43.909181089 +0000 UTC 2016-10-27 23:25:43.909181089 +0000 UTC mhv17xfe3gh6xc4rij5orpfds secret.json 2016-10-27 23:25:43.909181089 +0000 UTC 2016-10-27 23:25:43.909181089 +0000 UTC
``` ```
## Related information
## Related commands
* [secret create](secret_create.md) * [secret create](secret_create.md)
* [secret inspect](secret_inspect.md) * [secret inspect](secret_inspect.md)

View File

@ -27,9 +27,13 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Removes the specified secrets from the swarm. This command has to be run Removes the specified secrets from the swarm. This command has to be run
targeting a manager node. targeting a manager node.
## Examples
This example removes a secret: This example removes a secret:
```bash ```bash
@ -41,7 +45,7 @@ sapth4csdo5b6wz2p5uimh5xg
> before removing a secret. > before removing a secret.
## Related information ## Related commands
* [secret create](secret_create.md) * [secret create](secret_create.md)
* [secret inspect](secret_inspect.md) * [secret inspect](secret_inspect.md)

View File

@ -69,6 +69,8 @@ Options:
-w, --workdir string Working directory inside the container -w, --workdir string Working directory inside the container
``` ```
## Description
Creates a service as described by the specified parameters. You must run this Creates a service as described by the specified parameters. You must run this
command on a manager node. command on a manager node.
@ -78,12 +80,15 @@ command on a manager node.
```bash ```bash
$ docker service create --name redis redis:3.0.6 $ docker service create --name redis redis:3.0.6
dmu1ept4cxcfe8k8lhtux3ro3 dmu1ept4cxcfe8k8lhtux3ro3
$ docker service create --mode global --name redis2 redis:3.0.6 $ docker service create --mode global --name redis2 redis:3.0.6
a8q9dasaafudfs8q8w32udass a8q9dasaafudfs8q8w32udass
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
dmu1ept4cxcf redis replicated 1/1 redis:3.0.6 dmu1ept4cxcf redis replicated 1/1 redis:3.0.6
a8q9dasaafud redis2 global 1/1 redis:3.0.6 a8q9dasaafud redis2 global 1/1 redis:3.0.6
@ -96,6 +101,7 @@ service. The following command creates a `redis` service with `5` replica tasks:
```bash ```bash
$ docker service create --name redis --replicas=5 redis:3.0.6 $ docker service create --name redis --replicas=5 redis:3.0.6
4cdgfyky7ozwh3htjfw0d12qv 4cdgfyky7ozwh3htjfw0d12qv
``` ```
@ -109,6 +115,7 @@ number of `RUNNING` tasks is `3`:
```bash ```bash
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
4cdgfyky7ozw redis replicated 3/5 redis:3.0.7 4cdgfyky7ozw redis replicated 3/5 redis:3.0.7
``` ```
@ -118,11 +125,13 @@ equal to the desired number:
```bash ```bash
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
4cdgfyky7ozw redis replicated 5/5 redis:3.0.7 4cdgfyky7ozw redis replicated 5/5 redis:3.0.7
``` ```
### Create a service with secrets ### Create a service with secrets
Use the `--secret` flag to give a container access to a Use the `--secret` flag to give a container access to a
[secret](secret_create.md). [secret](secret_create.md).
@ -130,6 +139,7 @@ Create a service specifying a secret:
```bash ```bash
$ docker service create --name redis --secret secret.json redis:3.0.6 $ docker service create --name redis --secret secret.json redis:3.0.6
4cdgfyky7ozwh3htjfw0d12qv 4cdgfyky7ozwh3htjfw0d12qv
``` ```
@ -140,6 +150,7 @@ $ docker service create --name redis \
--secret source=ssh-key,target=ssh \ --secret source=ssh-key,target=ssh \
--secret source=app-key,target=app,uid=1000,gid=1001,mode=0400 \ --secret source=app-key,target=app,uid=1000,gid=1001,mode=0400 \
redis:3.0.6 redis:3.0.6
4cdgfyky7ozwh3htjfw0d12qv 4cdgfyky7ozwh3htjfw0d12qv
``` ```
@ -173,12 +184,15 @@ This sets environmental variables for all tasks in a service. For example:
$ docker service create --name redis_2 --replicas 5 --env MYVAR=foo redis:3.0.6 $ docker service create --name redis_2 --replicas 5 --env MYVAR=foo redis:3.0.6
``` ```
### Create a docker service with specific hostname (--hostname) ### Create a service with specific hostname (--hostname)
This option sets the docker service containers hostname to a specific string.
For example:
This option sets the docker service containers hostname to a specific string. For example:
```bash ```bash
$ docker service create --name redis --hostname myredis redis:3.0.6 $ docker service create --name redis --hostname myredis redis:3.0.6
``` ```
### Set metadata on a service (-l, --label) ### Set metadata on a service (-l, --label)
A label is a `key=value` pair that applies metadata to a service. To label a A label is a `key=value` pair that applies metadata to a service. To label a
@ -202,7 +216,7 @@ or write from files or directories on other containers or the host operating
system. These types are _data volumes_ (often referred to simply as volumes) and system. These types are _data volumes_ (often referred to simply as volumes) and
_bind-mounts_. _bind-mounts_.
Additionally, Docker also supports tmpfs mounts. Additionally, Docker supports `tmpfs` mounts.
A **bind-mount** makes a file or directory on the host available to the A **bind-mount** makes a file or directory on the host available to the
container it is mounted within. A bind-mount may be either read-only or container it is mounted within. A bind-mount may be either read-only or
@ -304,19 +318,19 @@ The `--mount` flag supports most options that are supported by the `-v`
or `--volume` flag for `docker run`, with some important exceptions: or `--volume` flag for `docker run`, with some important exceptions:
- The `--mount` flag allows you to specify a volume driver and volume driver - The `--mount` flag allows you to specify a volume driver and volume driver
options *per volume*, without creating the volumes in advance. In contrast, options *per volume*, without creating the volumes in advance. In contrast,
`docker run` allows you to specify a single volume driver which is shared `docker run` allows you to specify a single volume driver which is shared
by all volumes, using the `--volume-driver` flag. by all volumes, using the `--volume-driver` flag.
- The `--mount` flag allows you to specify custom metadata ("labels") for a volume, - The `--mount` flag allows you to specify custom metadata ("labels") for a volume,
before the volume is created. before the volume is created.
- When you use `--mount` with `type=bind`, the host-path must refer to an *existing* - When you use `--mount` with `type=bind`, the host-path must refer to an *existing*
path on the host. The path will not be created for you and the service will fail path on the host. The path will not be created for you and the service will fail
with an error if the path does not exist. with an error if the path does not exist.
- The `--mount` flag does not allow you to relabel a volume with `Z` or `z` flags, - The `--mount` flag does not allow you to relabel a volume with `Z` or `z` flags,
which are used for `selinux` labeling. which are used for `selinux` labeling.
#### Create a service using a named volume #### Create a service using a named volume
@ -533,18 +547,25 @@ In this example, we are going to set the template of the created containers base
service's name and the node's ID where it sits. service's name and the node's ID where it sits.
```bash ```bash
$ docker service create --name hosttempl --hostname={% raw %}"{{.Node.ID}}-{{.Service.Name}}"{% endraw %} busybox top {% raw %}
$ docker service create --name hosttempl \
--hostname={% raw %}"{{.Node.ID}}-{{.Service.Name}}"\
busybox top
va8ew30grofhjoychbr6iot8c va8ew30grofhjoychbr6iot8c
$ docker service ps va8ew30grofhjoychbr6iot8c $ docker service ps va8ew30grofhjoychbr6iot8c
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
wo41w8hg8qan hosttempl.1 busybox:latest@sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912 2e7a8a9c4da2 Running Running about a minute ago wo41w8hg8qan hosttempl.1 busybox:latest@sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912 2e7a8a9c4da2 Running Running about a minute ago
$ docker inspect --format={% raw %}"{{.Config.Hostname}}"{% endraw %} hosttempl.1.wo41w8hg8qanxwjwsg4kxpprj $ docker inspect --format="{{.Config.Hostname}}" hosttempl.1.wo41w8hg8qanxwjwsg4kxpprj
x3ti0erg11rjpg64m75kej2mz-hosttempl x3ti0erg11rjpg64m75kej2mz-hosttempl
{% endraw %}
``` ```
## Related information ## Related commands
* [service inspect](service_inspect.md) * [service inspect](service_inspect.md)
* [service logs](service_logs.md) * [service logs](service_logs.md)

View File

@ -26,6 +26,7 @@ Options:
--pretty Print the information in a human friendly format. --pretty Print the information in a human friendly format.
``` ```
## Description
Inspects the specified service. This command has to be run targeting a manager Inspects the specified service. This command has to be run targeting a manager
node. node.
@ -38,7 +39,7 @@ describes all the details of the format.
## Examples ## Examples
### Inspecting a service by name or ID ### Inspect a service by name or ID
You can inspect a service, either by its *name*, or *ID* You can inspect a service, either by its *name*, or *ID*
@ -53,8 +54,9 @@ dmu1ept4cxcf redis replicated 3/3 redis:3.0.6
Both `docker service inspect redis`, and `docker service inspect dmu1ept4cxcf` Both `docker service inspect redis`, and `docker service inspect dmu1ept4cxcf`
produce the same result: produce the same result:
```bash ```none
$ docker service inspect redis $ docker service inspect redis
[ [
{ {
"ID": "dmu1ept4cxcfe8k8lhtux3ro3", "ID": "dmu1ept4cxcfe8k8lhtux3ro3",
@ -98,6 +100,7 @@ $ docker service inspect redis
```bash ```bash
$ docker service inspect dmu1ept4cxcf $ docker service inspect dmu1ept4cxcf
[ [
{ {
"ID": "dmu1ept4cxcfe8k8lhtux3ro3", "ID": "dmu1ept4cxcfe8k8lhtux3ro3",
@ -109,13 +112,14 @@ $ docker service inspect dmu1ept4cxcf
] ]
``` ```
### Inspect a service using pretty-print ### Formatting
You can print the inspect output in a human-readable format instead of the default You can print the inspect output in a human-readable format instead of the default
JSON output, by using the `--pretty` option: JSON output, by using the `--pretty` option:
```bash ```bash
$ docker service inspect --pretty frontend $ docker service inspect --pretty frontend
ID: c8wgl7q4ndfd52ni6qftkvnnp ID: c8wgl7q4ndfd52ni6qftkvnnp
Name: frontend Name: frontend
Labels: Labels:
@ -142,19 +146,22 @@ Ports:
You can also use `--format pretty` for the same effect. You can also use `--format pretty` for the same effect.
### Finding the number of tasks running as part of a service #### Find the number of tasks running as part of a service
The `--format` option can be used to obtain specific information about a The `--format` option can be used to obtain specific information about a
service. For example, the following command outputs the number of replicas service. For example, the following command outputs the number of replicas
of the "redis" service. of the "redis" service.
```bash{% raw %} ```bash
{% raw %}
$ docker service inspect --format='{{.Spec.Mode.Replicated.Replicas}}' redis $ docker service inspect --format='{{.Spec.Mode.Replicated.Replicas}}' redis
10 10
{% endraw %}``` {% endraw %}
```
## Related information ## Related commands
* [service create](service_create.md) * [service create](service_create.md)
* [service logs](service_logs.md) * [service logs](service_logs.md)

View File

@ -30,9 +30,11 @@ Options:
-t, --timestamps Show timestamps -t, --timestamps Show timestamps
``` ```
## Description
The `docker service logs` command batch-retrieves logs present at the time of execution. The `docker service logs` command batch-retrieves logs present at the time of execution.
> **Note**: this command is only functional for services that are started with > **Note**: This command is only functional for services that are started with
> the `json-file` or `journald` logging driver. > the `json-file` or `journald` logging driver.
For more information about selecting and configuring logging drivers, refer to For more information about selecting and configuring logging drivers, refer to
@ -66,7 +68,7 @@ seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a
fraction of a second no more than nine digits long. You can combine the fraction of a second no more than nine digits long. You can combine the
`--since` option with either or both of the `--follow` or `--tail` options. `--since` option with either or both of the `--follow` or `--tail` options.
## Related information ## Related commands
* [service create](service_create.md) * [service create](service_create.md)
* [service inspect](service_inspect.md) * [service inspect](service_inspect.md)

View File

@ -30,12 +30,18 @@ Options:
-q, --quiet Only display IDs -q, --quiet Only display IDs
``` ```
## Description
This command when run targeting a manager, lists services are running in the This command when run targeting a manager, lists services are running in the
swarm. swarm.
## Examples
On a manager node: On a manager node:
```bash ```bash
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
c8wgl7q4ndfd frontend replicated 5/5 nginx:alpine c8wgl7q4ndfd frontend replicated 5/5 nginx:alpine
dmu1ept4cxcf redis replicated 3/3 redis:3.0.6 dmu1ept4cxcf redis replicated 3/3 redis:3.0.6
@ -45,7 +51,7 @@ iwe3278osahj mongo global 7/7 mongo:3.3
The `REPLICAS` column shows both the *actual* and *desired* number of tasks for The `REPLICAS` column shows both the *actual* and *desired* number of tasks for
the service. the service.
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -56,7 +62,7 @@ The currently supported filters are:
* [label](service_ls.md#label) * [label](service_ls.md#label)
* [name](service_ls.md#name) * [name](service_ls.md#name)
#### ID #### id
The `id` filter matches all or part of a service's id. The `id` filter matches all or part of a service's id.
@ -66,7 +72,7 @@ ID NAME MODE REPLICAS IMAGE
0bcjwfh8ychr redis replicated 1/1 redis:3.0.6 0bcjwfh8ychr redis replicated 1/1 redis:3.0.6
``` ```
#### Label #### label
The `label` filter matches services based on the presence of a `label` alone or The `label` filter matches services based on the presence of a `label` alone or
a `label` and a value. a `label` and a value.
@ -92,7 +98,7 @@ ID NAME MODE REPLICAS IMAGE
74nzcxxjv6fq backend replicated 3/3 redis:3.0.6 74nzcxxjv6fq backend replicated 3/3 redis:3.0.6
``` ```
#### Name #### name
The `name` filter matches on all or part of a service's name. The `name` filter matches on all or part of a service's name.
@ -104,7 +110,7 @@ ID NAME MODE REPLICAS IMAGE
0bcjwfh8ychr redis replicated 1/1 redis:3.0.6 0bcjwfh8ychr redis replicated 1/1 redis:3.0.6
``` ```
## Formatting ### Formatting
The formatting options (`--format`) pretty-prints services output The formatting options (`--format`) pretty-prints services output
using a Go template. using a Go template.
@ -127,12 +133,15 @@ The following example uses a template without headers and outputs the
`ID`, `Mode`, and `Replicas` entries separated by a colon for all services: `ID`, `Mode`, and `Replicas` entries separated by a colon for all services:
```bash ```bash
{% raw %}
$ docker service ls --format "{{.ID}}: {{.Mode}} {{.Replicas}}" $ docker service ls --format "{{.ID}}: {{.Mode}} {{.Replicas}}"
0zmvwuiu3vue: replicated 10/10 0zmvwuiu3vue: replicated 10/10
fm6uf97exkul: global 5/5 fm6uf97exkul: global 5/5
{% endraw %}
``` ```
## Related information ## Related commands
* [service create](service_create.md) * [service create](service_create.md)
* [service inspect](service_inspect.md) * [service inspect](service_inspect.md)

View File

@ -29,12 +29,14 @@ Options:
-q, --quiet Only display task IDs -q, --quiet Only display task IDs
``` ```
## Description
Lists the tasks that are running as part of the specified services. This command Lists the tasks that are running as part of the specified services. This command
has to be run targeting a manager node. has to be run targeting a manager node.
## Examples ## Examples
### Listing the tasks that are part of a service ### List the tasks that are part of a service
The following command shows all the tasks that are part of the `redis` service: The following command shows all the tasks that are part of the `redis` service:
@ -93,7 +95,7 @@ bk658fpbex0d57cqcwoe3jthu redis.2 redis:3.0.6@sha256:6a692a76c2081888b589
nvjljf7rmor4htv7l8rwcx7i7 \_ redis.2 redis:3.0.6@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842 worker2 Shutdown Rejected 5 minutes ago "No such image: redis@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842" nvjljf7rmor4htv7l8rwcx7i7 \_ redis.2 redis:3.0.6@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842 worker2 Shutdown Rejected 5 minutes ago "No such image: redis@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842"
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`). is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
@ -108,7 +110,7 @@ The currently supported filters are:
* [desired-state](#desired-state) * [desired-state](#desired-state)
#### ID #### id
The `id` filter matches on all or a prefix of a task's ID. The `id` filter matches on all or a prefix of a task's ID.
@ -120,7 +122,7 @@ ID NAME IMAGE NODE DESIRED STATE CURRENT STATE
8eaxrb2fqpbn redis.10 redis:3.0.6 manager1 Running Running 8 seconds 8eaxrb2fqpbn redis.10 redis:3.0.6 manager1 Running Running 8 seconds
``` ```
#### Name #### name
The `name` filter matches on task names. The `name` filter matches on task names.
@ -131,7 +133,7 @@ qihejybwf1x5 redis.1 redis:3.0.6 manager1 Running Running 8 seconds
``` ```
#### Node #### node
The `node` filter matches on a node name or a node ID. The `node` filter matches on a node name or a node ID.
@ -150,7 +152,7 @@ ID NAME IMAGE NODE DESIRED STATE CURRENT STATE
The `desired-state` filter can take the values `running`, `shutdown`, and `accepted`. The `desired-state` filter can take the values `running`, `shutdown`, and `accepted`.
## Related information ## Related commands
* [service create](service_create.md) * [service create](service_create.md)
* [service inspect](service_inspect.md) * [service inspect](service_inspect.md)

View File

@ -27,24 +27,29 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Removes the specified services from the swarm. This command has to be run Removes the specified services from the swarm. This command has to be run
targeting a manager node. targeting a manager node.
For example, to remove the redis service: ## Examples
Remove the `redis` service:
```bash ```bash
$ docker service rm redis $ docker service rm redis
redis redis
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
``` ```
> **Warning**: Unlike `docker rm`, this command does not ask for confirmation > **Warning**: Unlike `docker rm`, this command does not ask for confirmation
> before removing a running service. > before removing a running service.
## Related commands
## Related information
* [service create](service_create.md) * [service create](service_create.md)
* [service inspect](service_inspect.md) * [service inspect](service_inspect.md)

View File

@ -24,9 +24,7 @@ Options:
--help Print usage --help Print usage
``` ```
## Examples ## Description
### Scale a service
The scale command enables you to scale one or more replicated services either up The scale command enables you to scale one or more replicated services either up
or down to the desired number of replicas. This command cannot be applied on or down to the desired number of replicas. This command cannot be applied on
@ -34,19 +32,27 @@ services which are global mode. The command will return immediately, but the
actual scaling of the service may take some time. To stop all replicas of a actual scaling of the service may take some time. To stop all replicas of a
service while keeping the service active in the swarm you can set the scale to 0. service while keeping the service active in the swarm you can set the scale to 0.
For example, the following command scales the "frontend" service to 50 tasks. ## Examples
### Scale a single service
The following command scales the "frontend" service to 50 tasks.
```bash ```bash
$ docker service scale frontend=50 $ docker service scale frontend=50
frontend scaled to 50 frontend scaled to 50
``` ```
The following command tries to scale a global service to 10 tasks and returns an error. The following command tries to scale a global service to 10 tasks and returns an error.
``` ```bash
$ docker service create --mode global --name backend backend:latest $ docker service create --mode global --name backend backend:latest
b4g08uwuairexjub6ome6usqh b4g08uwuairexjub6ome6usqh
$ docker service scale backend=10 $ docker service scale backend=10
backend: scale can only be used with replicated mode backend: scale can only be used with replicated mode
``` ```
@ -76,16 +82,18 @@ backend and frontend services:
```bash ```bash
$ docker service scale backend=3 frontend=5 $ docker service scale backend=3 frontend=5
backend scaled to 3 backend scaled to 3
frontend scaled to 5 frontend scaled to 5
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
3pr5mlvu3fh9 frontend replicated 5/5 nginx:alpine 3pr5mlvu3fh9 frontend replicated 5/5 nginx:alpine
74nzcxxjv6fq backend replicated 3/3 redis:3.0.6 74nzcxxjv6fq backend replicated 3/3 redis:3.0.6
``` ```
## Related information ## Related commands
* [service create](service_create.md) * [service create](service_create.md)
* [service inspect](service_inspect.md) * [service inspect](service_inspect.md)

View File

@ -81,6 +81,8 @@ Options:
-w, --workdir string Working directory inside the container -w, --workdir string Working directory inside the container
``` ```
## Description
Updates a service as described by the specified parameters. This command has to be run targeting a manager node. Updates a service as described by the specified parameters. This command has to be run targeting a manager node.
The parameters are the same as [`docker service create`](service_create.md). Please look at the description there The parameters are the same as [`docker service create`](service_create.md). Please look at the description there
for further information. for further information.
@ -112,7 +114,7 @@ that only one task is replaced at a time (this is the default behavior). The
`--update-delay 30s` setting introduces a 30 second delay between tasks, so `--update-delay 30s` setting introduces a 30 second delay between tasks, so
that the rolling restart happens gradually. that the rolling restart happens gradually.
### Adding and removing mounts ### Add or remove mounts
Use the `--mount-add` or `--mount-rm` options add or remove a service's bind-mounts Use the `--mount-add` or `--mount-rm` options add or remove a service's bind-mounts
or volumes. or volumes.
@ -152,7 +154,7 @@ $ docker service update --mount-rm /somewhere myservice
myservice myservice
``` ```
### Adding and removing secrets ### Add or remove secrets
Use the `--secret-add` or `--secret-rm` options add or remove a service's Use the `--secret-add` or `--secret-rm` options add or remove a service's
secrets. secrets.
@ -171,7 +173,7 @@ $ docker service update \
Some flags of `service update` support the use of templating. Some flags of `service update` support the use of templating.
See [`service create`](./service_create.md#templating) for the reference. See [`service create`](./service_create.md#templating) for the reference.
## Related information ## Related commands
* [service create](service_create.md) * [service create](service_create.md)
* [service inspect](service_inspect.md) * [service inspect](service_inspect.md)

View File

@ -30,15 +30,20 @@ Options:
--with-registry-auth Send registry authentication details to Swarm agents --with-registry-auth Send registry authentication details to Swarm agents
``` ```
## Description
Create and update a stack from a `compose` or a `dab` file on the swarm. This command Create and update a stack from a `compose` or a `dab` file on the swarm. This command
has to be run targeting a manager node. has to be run targeting a manager node.
## Compose file ## Examples
### Compose file
The `deploy` command supports compose file version `3.0` and above." The `deploy` command supports compose file version `3.0` and above."
```bash ```bash
$ docker stack deploy --compose-file docker-compose.yml vossibility $ docker stack deploy --compose-file docker-compose.yml vossibility
Ignoring unsupported options: links Ignoring unsupported options: links
Creating network vossibility_vossibility Creating network vossibility_vossibility
@ -53,8 +58,9 @@ Creating service vossibility_lookupd
You can verify that the services were correctly created You can verify that the services were correctly created
``` ```bash
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
29bv0vnlm903 vossibility_lookupd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662 29bv0vnlm903 vossibility_lookupd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
4awt47624qwh vossibility_nsqd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662 4awt47624qwh vossibility_nsqd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
@ -64,10 +70,11 @@ ID NAME MODE REPLICAS IMAGE
axqh55ipl40h vossibility_vossibility-collector replicated 1/1 icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba axqh55ipl40h vossibility_vossibility-collector replicated 1/1 icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba
``` ```
## DAB file ### DAB file
```bash ```bash
$ docker stack deploy --bundle-file vossibility-stack.dab vossibility $ docker stack deploy --bundle-file vossibility-stack.dab vossibility
Loading bundle from vossibility-stack.dab Loading bundle from vossibility-stack.dab
Creating service vossibility_elasticsearch Creating service vossibility_elasticsearch
Creating service vossibility_kibana Creating service vossibility_kibana
@ -81,6 +88,7 @@ You can verify that the services were correctly created:
```bash ```bash
$ docker service ls $ docker service ls
ID NAME MODE REPLICAS IMAGE ID NAME MODE REPLICAS IMAGE
29bv0vnlm903 vossibility_lookupd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662 29bv0vnlm903 vossibility_lookupd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
4awt47624qwh vossibility_nsqd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662 4awt47624qwh vossibility_nsqd replicated 1/1 nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
@ -90,7 +98,7 @@ ID NAME MODE REPLICAS IMAGE
axqh55ipl40h vossibility_vossibility-collector replicated 1/1 icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba axqh55ipl40h vossibility_vossibility-collector replicated 1/1 icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba
``` ```
## Related information ## Related commands
* [stack ls](stack_ls.md) * [stack ls](stack_ls.md)
* [stack ps](stack_ps.md) * [stack ps](stack_ps.md)

View File

@ -27,9 +27,13 @@ Options:
--help Print usage --help Print usage
``` ```
## Descriptino
Lists the stacks. Lists the stacks.
For example, the following command shows all stacks and some additional information: ## Examples
The following command shows all stacks and some additional information:
```bash ```bash
$ docker stack ls $ docker stack ls
@ -39,7 +43,7 @@ vossibility-stack 6
myapp 2 myapp 2
``` ```
## Related information ## Related commands
* [stack deploy](stack_deploy.md) * [stack deploy](stack_deploy.md)
* [stack ps](stack_ps.md) * [stack ps](stack_ps.md)

View File

@ -27,10 +27,18 @@ Options:
--no-trunc Do not truncate output --no-trunc Do not truncate output
``` ```
## Description
Lists the tasks that are running as part of the specified stack. This Lists the tasks that are running as part of the specified stack. This
command has to be run targeting a manager node. command has to be run targeting a manager node.
## Filtering ## Examples
```bash
$ docker stack ps
```
### Filtering
The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`). is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
@ -43,7 +51,7 @@ The currently supported filters are:
* name * name
* desired-state * desired-state
## Related information ## Related commands
* [stack deploy](stack_deploy.md) * [stack deploy](stack_deploy.md)
* [stack ls](stack_ls.md) * [stack ls](stack_ls.md)

View File

@ -27,10 +27,12 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Remove the stack from the swarm. This command has to be run targeting Remove the stack from the swarm. This command has to be run targeting
a manager node. a manager node.
## Related information ## Related commands
* [stack deploy](stack_deploy.md) * [stack deploy](stack_deploy.md)
* [stack ls](stack_ls.md) * [stack ls](stack_ls.md)

View File

@ -28,10 +28,14 @@ Options:
-q, --quiet Only display IDs -q, --quiet Only display IDs
``` ```
### Description
Lists the services that are running as part of the specified stack. This Lists the services that are running as part of the specified stack. This
command has to be run targeting a manager node. command has to be run targeting a manager node.
For example, the following command shows all services in the `myapp` stack: ### Examples
The following command shows all services in the `myapp` stack:
```bash ```bash
$ docker stack services myapp $ docker stack services myapp
@ -41,7 +45,7 @@ ID NAME REPLICAS IMAGE
dn7m7nhhfb9y myapp_db 1/1 mysql@sha256:a9a5b559f8821fe73d58c3606c812d1c044868d42c63817fa5125fd9d8b7b539 dn7m7nhhfb9y myapp_db 1/1 mysql@sha256:a9a5b559f8821fe73d58c3606c812d1c044868d42c63817fa5125fd9d8b7b539
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`). is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
@ -63,7 +67,7 @@ The currently supported filters are:
* name (`--filter name=myapp_web`) * name (`--filter name=myapp_web`)
* label (`--filter label=key=value`) * label (`--filter label=key=value`)
## Formatting ### Formatting
The formatting options (`--format`) pretty-prints services output The formatting options (`--format`) pretty-prints services output
using a Go template. using a Go template.
@ -86,13 +90,16 @@ The following example uses a template without headers and outputs the
`ID`, `Mode`, and `Replicas` entries separated by a colon for all services: `ID`, `Mode`, and `Replicas` entries separated by a colon for all services:
```bash ```bash
{% raw %}
$ docker stack services --format "{{.ID}}: {{.Mode}} {{.Replicas}}" $ docker stack services --format "{{.ID}}: {{.Mode}} {{.Replicas}}"
0zmvwuiu3vue: replicated 10/10 0zmvwuiu3vue: replicated 10/10
fm6uf97exkul: global 5/5 fm6uf97exkul: global 5/5
{% endraw %}
``` ```
## Related information ## Related commands
* [stack deploy](stack_deploy.md) * [stack deploy](stack_deploy.md)
* [stack ls](stack_ls.md) * [stack ls](stack_ls.md)

View File

@ -26,3 +26,9 @@ Options:
--help Print usage --help Print usage
-i, --interactive Attach container's STDIN -i, --interactive Attach container's STDIN
``` ```
## Examples
```bash
$ docker start my_container
```

View File

@ -27,6 +27,8 @@ Options:
--no-stream Disable streaming stats and only pull the first result --no-stream Disable streaming stats and only pull the first result
``` ```
## Description
The `docker stats` command returns a live data stream for running containers. To limit data to one or more specific containers, specify a list of container names or ids separated by a space. You can specify a stopped container but stopped containers do not return any data. The `docker stats` command returns a live data stream for running containers. To limit data to one or more specific containers, specify a list of container names or ids separated by a space. You can specify a stopped container but stopped containers do not return any data.
If you want more detailed information about a container's resource usage, use the `/containers/(id)/stats` API endpoint. If you want more detailed information about a container's resource usage, use the `/containers/(id)/stats` API endpoint.
@ -35,41 +37,49 @@ If you want more detailed information about a container's resource usage, use th
Running `docker stats` on all running containers against a Linux daemon. Running `docker stats` on all running containers against a Linux daemon.
$ docker stats ```bash
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O $ docker stats
1285939c1fd3 0.07% 796 KiB / 64 MiB 1.21% 788 B / 648 B 3.568 MB / 512 KB CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
9c76f7834ae2 0.07% 2.746 MiB / 64 MiB 4.29% 1.266 KB / 648 B 12.4 MB / 0 B 1285939c1fd3 0.07% 796 KiB / 64 MiB 1.21% 788 B / 648 B 3.568 MB / 512 KB
d1ea048f04e4 0.03% 4.583 MiB / 64 MiB 6.30% 2.854 KB / 648 B 27.7 MB / 0 B 9c76f7834ae2 0.07% 2.746 MiB / 64 MiB 4.29% 1.266 KB / 648 B 12.4 MB / 0 B
d1ea048f04e4 0.03% 4.583 MiB / 64 MiB 6.30% 2.854 KB / 648 B 27.7 MB / 0 B
```
Running `docker stats` on multiple containers by name and id against a Linux daemon. Running `docker stats` on multiple containers by name and id against a Linux daemon.
$ docker stats fervent_panini 5acfcb1b4fd1 ```bash
CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O $ docker stats fervent_panini 5acfcb1b4fd1
5acfcb1b4fd1 0.00% 115.2 MiB/1.045 GiB 11.03% 1.422 kB/648 B CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O
fervent_panini 0.02% 11.08 MiB/1.045 GiB 1.06% 648 B/648 B 5acfcb1b4fd1 0.00% 115.2 MiB/1.045 GiB 11.03% 1.422 kB/648 B
fervent_panini 0.02% 11.08 MiB/1.045 GiB 1.06% 648 B/648 B
```
Running `docker stats` on all running containers against a Windows daemon. Running `docker stats` on all running containers against a Windows daemon.
PS E:\> docker stats ```powershell
CONTAINER CPU % PRIV WORKING SET NET I/O BLOCK I/O PS E:\> docker stats
09d3bb5b1604 6.61% 38.21 MiB 17.1 kB / 7.73 kB 10.7 MB / 3.57 MB CONTAINER CPU % PRIV WORKING SET NET I/O BLOCK I/O
9db7aa4d986d 9.19% 38.26 MiB 15.2 kB / 7.65 kB 10.6 MB / 3.3 MB 09d3bb5b1604 6.61% 38.21 MiB 17.1 kB / 7.73 kB 10.7 MB / 3.57 MB
3f214c61ad1d 0.00% 28.64 MiB 64 kB / 6.84 kB 4.42 MB / 6.93 MB 9db7aa4d986d 9.19% 38.26 MiB 15.2 kB / 7.65 kB 10.6 MB / 3.3 MB
3f214c61ad1d 0.00% 28.64 MiB 64 kB / 6.84 kB 4.42 MB / 6.93 MB
```
Running `docker stats` on multiple containers by name and id against a Windows daemon. Running `docker stats` on multiple containers by name and id against a Windows daemon.
PS E:\> docker ps -a ```powershell
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES PS E:\> docker ps -a
3f214c61ad1d nanoserver "cmd" 2 minutes ago Up 2 minutes big_minsky CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9db7aa4d986d windowsservercore "cmd" 2 minutes ago Up 2 minutes mad_wilson 3f214c61ad1d nanoserver "cmd" 2 minutes ago Up 2 minutes big_minsky
09d3bb5b1604 windowsservercore "cmd" 2 minutes ago Up 2 minutes affectionate_easley 9db7aa4d986d windowsservercore "cmd" 2 minutes ago Up 2 minutes mad_wilson
09d3bb5b1604 windowsservercore "cmd" 2 minutes ago Up 2 minutes affectionate_easley
PS E:\> docker stats 3f214c61ad1d mad_wilson PS E:\> docker stats 3f214c61ad1d mad_wilson
CONTAINER CPU % PRIV WORKING SET NET I/O BLOCK I/O CONTAINER CPU % PRIV WORKING SET NET I/O BLOCK I/O
3f214c61ad1d 0.00% 46.25 MiB 76.3 kB / 7.92 kB 10.3 MB / 14.7 MB 3f214c61ad1d 0.00% 46.25 MiB 76.3 kB / 7.92 kB 10.3 MB / 14.7 MB
mad_wilson 9.59% 40.09 MiB 27.6 kB / 8.81 kB 17 MB / 20.1 MB mad_wilson 9.59% 40.09 MiB 27.6 kB / 8.81 kB 17 MB / 20.1 MB
```
## Formatting ### Formatting
The formatting option (`--format`) pretty prints container output The formatting option (`--format`) pretty prints container output
using a Go template. using a Go template.
@ -97,21 +107,25 @@ The following example uses a template without headers and outputs the
`Container` and `CPUPerc` entries separated by a colon for all images: `Container` and `CPUPerc` entries separated by a colon for all images:
```bash ```bash
{% raw %}
$ docker stats --format "{{.Container}}: {{.CPUPerc}}" $ docker stats --format "{{.Container}}: {{.CPUPerc}}"
09d3bb5b1604: 6.61% 09d3bb5b1604: 6.61%
9db7aa4d986d: 9.19% 9db7aa4d986d: 9.19%
3f214c61ad1d: 0.00% 3f214c61ad1d: 0.00%
{% endraw %}
``` ```
To list all containers statistics with their name, CPU percentage and memory To list all containers statistics with their name, CPU percentage and memory
usage in a table format you can use: usage in a table format you can use:
```bash ```bash
{% raw %}
$ docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" $ docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
CONTAINER CPU % PRIV WORKING SET CONTAINER CPU % PRIV WORKING SET
1285939c1fd3 0.07% 796 KiB / 64 MiB 1285939c1fd3 0.07% 796 KiB / 64 MiB
9c76f7834ae2 0.07% 2.746 MiB / 64 MiB 9c76f7834ae2 0.07% 2.746 MiB / 64 MiB
d1ea048f04e4 0.03% 4.583 MiB / 64 MiB d1ea048f04e4 0.03% 4.583 MiB / 64 MiB
{% endraw %}
``` ```

View File

@ -25,5 +25,13 @@ Options:
-t, --time int Seconds to wait for stop before killing it (default 10) -t, --time int Seconds to wait for stop before killing it (default 10)
``` ```
## Description
The main process inside the container will receive `SIGTERM`, and after a grace The main process inside the container will receive `SIGTERM`, and after a grace
period, `SIGKILL`. period, `SIGKILL`.
## Examples
```bash
$ docker stop my_container
```

View File

@ -35,9 +35,12 @@ Options:
--task-history-limit int Task history retention limit (default 5) --task-history-limit int Task history retention limit (default 5)
``` ```
## Description
Initialize a swarm. The docker engine targeted by this command becomes a manager Initialize a swarm. The docker engine targeted by this command becomes a manager
in the newly created single-node swarm. in the newly created single-node swarm.
## Examples
```bash ```bash
$ docker swarm init --advertise-addr 192.168.99.121 $ docker swarm init --advertise-addr 192.168.99.121
@ -144,7 +147,7 @@ dedicated manager nodes that are not served as worker nodes. This could be achie
by passing `--availability=drain` to `docker swarm init`. by passing `--availability=drain` to `docker swarm init`.
## Related information ## Related commands
* [swarm join](swarm_join.md) * [swarm join](swarm_join.md)
* [swarm join-token](swarm_join_token.md) * [swarm join-token](swarm_join_token.md)

View File

@ -28,10 +28,14 @@ Options:
--token string Token for entry into the swarm --token string Token for entry into the swarm
``` ```
## Description
Join a node to a swarm. The node joins as a manager node or worker node based upon the token you Join a node to a swarm. The node joins as a manager node or worker node based upon the token you
pass with the `--token` flag. If you pass a manager token, the node joins as a manager. If you pass with the `--token` flag. If you pass a manager token, the node joins as a manager. If you
pass a worker token, the node joins as a worker. pass a worker token, the node joins as a worker.
## Examples
### Join a node to swarm as a manager ### Join a node to swarm as a manager
The example below demonstrates joining a manager node using a manager token. The example below demonstrates joining a manager node using a manager token.
@ -105,7 +109,7 @@ dedicated manager nodes that are not served as worker nodes. This could be achie
by passing `--availability=drain` to `docker swarm join`. by passing `--availability=drain` to `docker swarm join`.
## Related information ## Related commands
* [swarm init](swarm_init.md) * [swarm init](swarm_init.md)
* [swarm join-token](swarm_join_token.md) * [swarm join-token](swarm_join_token.md)

View File

@ -26,12 +26,16 @@ Options:
--rotate Rotate join token --rotate Rotate join token
``` ```
## Description
Join tokens are secrets that allow a node to join the swarm. There are two Join tokens are secrets that allow a node to join the swarm. There are two
different join tokens available, one for the worker role and one for the manager different join tokens available, one for the worker role and one for the manager
role. You pass the token using the `--token` flag when you run role. You pass the token using the `--token` flag when you run
[swarm join](swarm_join.md). Nodes use the join token only when they join the [swarm join](swarm_join.md). Nodes use the join token only when they join the
swarm. swarm.
## Examples
You can view or rotate the join tokens using `swarm join-token`. You can view or rotate the join tokens using `swarm join-token`.
As a convenience, you can pass `worker` or `manager` as an argument to As a convenience, you can pass `worker` or `manager` as an argument to
@ -100,7 +104,7 @@ because the join token is only used for authorizing new nodes joining the swarm.
Only print the token. Do not print a complete command for joining. Only print the token. Do not print a complete command for joining.
## Related information ## Related commands
* [swarm init](swarm_init.md) * [swarm init](swarm_init.md)
* [swarm join](swarm_join.md) * [swarm join](swarm_join.md)

View File

@ -25,6 +25,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
When you run this command on a worker, that worker leaves the swarm. When you run this command on a worker, that worker leaves the swarm.
You can use the `--force` option on a manager to remove it from the swarm. You can use the `--force` option on a manager to remove it from the swarm.
@ -34,7 +36,10 @@ from a swarm is to demote it to a worker and then direct it to leave the quorum
without using `--force`. Only use `--force` in situations where the swarm will without using `--force`. Only use `--force` in situations where the swarm will
no longer be used after the manager leaves, such as in a single-node swarm. no longer be used after the manager leaves, such as in a single-node swarm.
## Examples
Consider the following swarm, as seen from the manager: Consider the following swarm, as seen from the manager:
```bash ```bash
$ docker node ls $ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
@ -55,7 +60,7 @@ affects swarm operation, but a long list of `down` nodes can clutter the node
list. To remove an inactive node from the list, use the [`node rm`](node_rm.md) list. To remove an inactive node from the list, use the [`node rm`](node_rm.md)
command. command.
## Related information ## Related commands
* [node rm](node_rm.md) * [node rm](node_rm.md)
* [swarm init](swarm_init.md) * [swarm init](swarm_init.md)

View File

@ -24,18 +24,21 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Unlocks a locked manager using a user-supplied unlock key. This command must be Unlocks a locked manager using a user-supplied unlock key. This command must be
used to reactivate a manager after its Docker daemon restarts if the autolock used to reactivate a manager after its Docker daemon restarts if the autolock
setting is turned on. The unlock key is printed at the time when autolock is setting is turned on. The unlock key is printed at the time when autolock is
enabled, and is also available from the `docker swarm unlock-key` command. enabled, and is also available from the `docker swarm unlock-key` command.
## Examples
```bash ```bash
$ docker swarm unlock $ docker swarm unlock
Please enter unlock key: Please enter unlock key:
``` ```
## Related information ## Related commands
* [swarm init](swarm_init.md) * [swarm init](swarm_init.md)
* [swarm join](swarm_join.md) * [swarm join](swarm_join.md)

View File

@ -26,6 +26,8 @@ Options:
--rotate Rotate unlock key --rotate Rotate unlock key
``` ```
## Description
An unlock key is a secret key needed to unlock a manager after its Docker daemon An unlock key is a secret key needed to unlock a manager after its Docker daemon
restarts. These keys are only used when the autolock feature is enabled for the restarts. These keys are only used when the autolock feature is enabled for the
swarm. swarm.
@ -33,9 +35,11 @@ swarm.
You can view or rotate the unlock key using `swarm unlock-key`. To view the key, You can view or rotate the unlock key using `swarm unlock-key`. To view the key,
run the `docker swarm unlock-key` command without any arguments: run the `docker swarm unlock-key` command without any arguments:
## Examples
```bash ```bash
$ docker swarm unlock-key $ docker swarm unlock-key
To unlock a swarm manager after it restarts, run the `docker swarm unlock` To unlock a swarm manager after it restarts, run the `docker swarm unlock`
command and provide the following key: command and provide the following key:
@ -77,7 +81,7 @@ key. The old unlock key will no longer be accepted.
Only print the unlock key, without instructions. Only print the unlock key, without instructions.
## Related information ## Related commands
* [swarm init](swarm_init.md) * [swarm init](swarm_init.md)
* [swarm join](swarm_join.md) * [swarm join](swarm_join.md)

View File

@ -31,14 +31,17 @@ Options:
--task-history-limit int Task history retention limit (default 5) --task-history-limit int Task history retention limit (default 5)
``` ```
## Description
Updates a swarm with new parameter values. This command must target a manager node. Updates a swarm with new parameter values. This command must target a manager node.
## Examples
```bash ```bash
$ docker swarm update --cert-expiry 720h $ docker swarm update --cert-expiry 720h
``` ```
## Related information ## Related commands
* [swarm init](swarm_init.md) * [swarm init](swarm_init.md)
* [swarm join](swarm_join.md) * [swarm join](swarm_join.md)

View File

@ -25,12 +25,18 @@ Options:
-v, --verbose Show detailed information on space usage -v, --verbose Show detailed information on space usage
``` ```
## Description
The `docker system df` command displays information regarding the The `docker system df` command displays information regarding the
amount of disk space used by the docker daemon. amount of disk space used by the docker daemon.
## Examples
By default the command will just show a summary of the data used: By default the command will just show a summary of the data used:
```bash ```bash
$ docker system df $ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 5 2 16.43 MB 11.63 MB (70%) Images 5 2 16.43 MB 11.63 MB (70%)
Containers 2 0 212 B 212 B (100%) Containers 2 0 212 B 212 B (100%)
@ -38,8 +44,10 @@ Local Volumes 2 1 36 B
``` ```
A more detailed view can be requested using the `-v, --verbose` flag: A more detailed view can be requested using the `-v, --verbose` flag:
```bash ```bash
$ docker system df -v $ docker system df -v
Images space usage: Images space usage:
REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS
@ -66,9 +74,10 @@ my-named-vol 0
* `UNIQUE SIZE` is the amount of space that is only used by a given image * `UNIQUE SIZE` is the amount of space that is only used by a given image
* `SIZE` is the virtual size of the image, it is the sum of `SHARED SIZE` and `UNIQUE SIZE` * `SIZE` is the virtual size of the image, it is the sum of `SHARED SIZE` and `UNIQUE SIZE`
Note that network information is not shown because it doesn't consume the disk space. > **Note**: Network information is not shown because it doesn't consume the disk
> space.
## Related Information ## Related commands
* [system prune](system_prune.md) * [system prune](system_prune.md)
* [container prune](container_prune.md) * [container prune](container_prune.md)
* [volume prune](volume_prune.md) * [volume prune](volume_prune.md)

View File

@ -27,12 +27,15 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Remove all unused containers, volumes, networks and images (both dangling and unreferenced). Remove all unused containers, volumes, networks and images (both dangling and unreferenced).
Example output: ## Examples
```bash ```bash
$ docker system prune -a $ docker system prune -a
WARNING! This will remove: WARNING! This will remove:
- all stopped containers - all stopped containers
- all volumes not used by at least one container - all volumes not used by at least one container
@ -65,7 +68,7 @@ deleted: sha256:3a88a5c81eb5c283e72db2dbc6d65cbfd8e80b6c89bb6e714cfaaa0eed99c548
Total reclaimed space: 13.5 MB Total reclaimed space: 13.5 MB
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -86,7 +89,7 @@ that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap
seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a
fraction of a second no more than nine digits long. fraction of a second no more than nine digits long.
## Related information ## Related commands
* [volume create](volume_create.md) * [volume create](volume_create.md)
* [volume ls](volume_ls.md) * [volume ls](volume_ls.md)

View File

@ -24,6 +24,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
An image name is made up of slash-separated name components, optionally prefixed An image name is made up of slash-separated name components, optionally prefixed
by a registry hostname. The hostname must comply with standard DNS rules, but by a registry hostname. The hostname must comply with standard DNS rules, but
may not contain underscores. If a hostname is present, it may optionally be may not contain underscores. If a hostname is present, it may optionally be
@ -40,35 +42,43 @@ period or a dash and may contain a maximum of 128 characters.
You can group your images together using names and tags, and then upload them You can group your images together using names and tags, and then upload them
to [*Share Images via Repositories*](https://docs.docker.com/engine/tutorials/dockerrepos/#/contributing-to-docker-hub). to [*Share Images via Repositories*](https://docs.docker.com/engine/tutorials/dockerrepos/#/contributing-to-docker-hub).
# Examples ## Examples
## Tagging an image referenced by ID ### Tag an image referenced by ID
To tag a local image with ID "0e5574283393" into the "fedora" repository with To tag a local image with ID "0e5574283393" into the "fedora" repository with
"version1.0": "version1.0":
docker tag 0e5574283393 fedora/httpd:version1.0 ```bash
$ docker tag 0e5574283393 fedora/httpd:version1.0
```
## Tagging an image referenced by Name ### Tag an image referenced by Name
To tag a local image with name "httpd" into the "fedora" repository with To tag a local image with name "httpd" into the "fedora" repository with
"version1.0": "version1.0":
docker tag httpd fedora/httpd:version1.0 ```bash
$ docker tag httpd fedora/httpd:version1.0
```
Note that since the tag name is not specified, the alias is created for an Note that since the tag name is not specified, the alias is created for an
existing local version `httpd:latest`. existing local version `httpd:latest`.
## Tagging an image referenced by Name and Tag ### Tag an image referenced by Name and Tag
To tag a local image with name "httpd" and tag "test" into the "fedora" To tag a local image with name "httpd" and tag "test" into the "fedora"
repository with "version1.0.test": repository with "version1.0.test":
docker tag httpd:test fedora/httpd:version1.0.test ```bash
$ docker tag httpd:test fedora/httpd:version1.0.test
```
## Tagging an image for a private repository ### Tag an image for a private repository
To push an image to a private registry and not the central Docker To push an image to a private registry and not the central Docker
registry you must tag it with the registry hostname and port (if needed). registry you must tag it with the registry hostname and port (if needed).
docker tag 0e5574283393 myregistryhost:5000/fedora/httpd:version1.0 ```bash
$ docker tag 0e5574283393 myregistryhost:5000/fedora/httpd:version1.0
```

View File

@ -24,6 +24,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
The `docker unpause` command un-suspends all processes in the specified containers. The `docker unpause` command un-suspends all processes in the specified containers.
On Linux, it does this using the cgroups freezer. On Linux, it does this using the cgroups freezer.
@ -31,6 +33,12 @@ See the
[cgroups freezer documentation](https://www.kernel.org/doc/Documentation/cgroup-v1/freezer-subsystem.txt) [cgroups freezer documentation](https://www.kernel.org/doc/Documentation/cgroup-v1/freezer-subsystem.txt)
for further details. for further details.
## Related information ## Examples
```bash
$ docker unpause my_container
```
## Related commands
* [pause](pause.md) * [pause](pause.md)

View File

@ -37,6 +37,8 @@ Options:
--restart string Restart policy to apply when a container exits --restart string Restart policy to apply when a container exits
``` ```
## Description
The `docker update` command dynamically updates container configuration. The `docker update` command dynamically updates container configuration.
You can use this command to prevent containers from consuming too many You can use this command to prevent containers from consuming too many
resources from their Docker host. With a single command, you can place resources from their Docker host. With a single command, you can place

View File

@ -25,6 +25,8 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
By default, this will render all version information in an easy to read By default, this will render all version information in an easy to read
layout. If a format is specified, the given template will be executed instead. layout. If a format is specified, the given template will be executed instead.
@ -33,35 +35,44 @@ describes all the details of the format.
## Examples ## Examples
**Default output:** ### Default output
$ docker version ```bash
Client: $ docker version
Version: 1.8.0
API version: 1.20
Go version: go1.4.2
Git commit: f5bae0a
Built: Tue Jun 23 17:56:00 UTC 2015
OS/Arch: linux/amd64
Server: Client:
Version: 1.8.0 Version: 1.8.0
API version: 1.20 API version: 1.20
Go version: go1.4.2 Go version: go1.4.2
Git commit: f5bae0a Git commit: f5bae0a
Built: Tue Jun 23 17:56:00 UTC 2015 Built: Tue Jun 23 17:56:00 UTC 2015
OS/Arch: linux/amd64 OS/Arch: linux/amd64
**Get server version:** Server:
Version: 1.8.0
API version: 1.20
Go version: go1.4.2
Git commit: f5bae0a
Built: Tue Jun 23 17:56:00 UTC 2015
OS/Arch: linux/amd64
```
{% raw %} ### Get the server version
$ docker version --format '{{.Server.Version}}'
1.8.0
{% endraw %}
**Dump raw data:** ```bash
{% raw %}
$ docker version --format '{{.Server.Version}}'
{% raw %} 1.8.0
$ docker version --format '{{json .}}' {% endraw %}
{"Client":{"Version":"1.8.0","ApiVersion":"1.20","GitCommit":"f5bae0a","GoVersion":"go1.4.2","Os":"linux","Arch":"amd64","BuildTime":"Tue Jun 23 17:56:00 UTC 2015"},"ServerOK":true,"Server":{"Version":"1.8.0","ApiVersion":"1.20","GitCommit":"f5bae0a","GoVersion":"go1.4.2","Os":"linux","Arch":"amd64","KernelVersion":"3.13.2-gentoo","BuildTime":"Tue Jun 23 17:56:00 UTC 2015"}} ```
{% endraw %}
### Dump raw JSON data
```bash
{% raw %}
$ docker version --format '{{json .}}'
{"Client":{"Version":"1.8.0","ApiVersion":"1.20","GitCommit":"f5bae0a","GoVersion":"go1.4.2","Os":"linux","Arch":"amd64","BuildTime":"Tue Jun 23 17:56:00 UTC 2015"},"ServerOK":true,"Server":{"Version":"1.8.0","ApiVersion":"1.20","GitCommit":"f5bae0a","GoVersion":"go1.4.2","Os":"linux","Arch":"amd64","KernelVersion":"3.13.2-gentoo","BuildTime":"Tue Jun 23 17:56:00 UTC 2015"}}
{% endraw %}
```

View File

@ -27,33 +27,51 @@ Options:
-o, --opt value Set driver specific options (default map[]) -o, --opt value Set driver specific options (default map[])
``` ```
Creates a new volume that containers can consume and store data in. If a name is not specified, Docker generates a random name. You create a volume and then configure the container to use it, for example: ## Description
Creates a new volume that containers can consume and store data in. If a name is
not specified, Docker generates a random name.
## Examples
Create a volume and then configure the container to use it:
```bash ```bash
$ docker volume create hello $ docker volume create hello
hello hello
$ docker run -d -v hello:/world busybox ls /world $ docker run -d -v hello:/world busybox ls /world
``` ```
The mount is created inside the container's `/world` directory. Docker does not support relative paths for mount points inside the container. The mount is created inside the container's `/world` directory. Docker does not
support relative paths for mount points inside the container.
Multiple containers can use the same volume in the same time period. This is useful if two containers need access to shared data. For example, if one container writes and the other reads the data. Multiple containers can use the same volume in the same time period. This is
useful if two containers need access to shared data. For example, if one
container writes and the other reads the data.
Volume names must be unique among drivers. This means you cannot use the same volume name with two different drivers. If you attempt this `docker` returns an error: Volume names must be unique among drivers. This means you cannot use the same
volume name with two different drivers. If you attempt this `docker` returns an
error:
``` ```none
A volume named "hello" already exists with the "some-other" driver. Choose a different volume name. A volume named "hello" already exists with the "some-other" driver. Choose a different volume name.
``` ```
If you specify a volume name already in use on the current driver, Docker assumes you want to re-use the existing volume and does not return an error. If you specify a volume name already in use on the current driver, Docker
assumes you want to re-use the existing volume and does not return an error.
## Driver specific options ### Driver-specific options
Some volume drivers may take options to customize the volume creation. Use the `-o` or `--opt` flags to pass driver options: Some volume drivers may take options to customize the volume creation. Use the
`-o` or `--opt` flags to pass driver options:
```bash ```bash
$ docker volume create --driver fake --opt tardis=blue --opt timey=wimey $ docker volume create --driver fake \
--opt tardis=blue \
--opt timey=wimey \
foo
``` ```
These options are passed directly to the volume driver. Options for These options are passed directly to the volume driver. Options for
@ -61,28 +79,44 @@ different volume drivers may do different things (or nothing at all).
The built-in `local` driver on Windows does not support any options. The built-in `local` driver on Windows does not support any options.
The built-in `local` driver on Linux accepts options similar to the linux `mount` command. You can provide multiple options by passing the `--opt` flag multiple times. Some `mount` options (such as the `o` option) can take a comma-separated list of options. Complete list of available mount options can be found [here](http://man7.org/linux/man-pages/man8/mount.8.html). The built-in `local` driver on Linux accepts options similar to the linux
`mount` command. You can provide multiple options by passing the `--opt` flag
multiple times. Some `mount` options (such as the `o` option) can take a
comma-separated list of options. Complete list of available mount options can be
found [here](http://man7.org/linux/man-pages/man8/mount.8.html).
For example, the following creates a `tmpfs` volume called `foo` with a size of 100 megabyte and `uid` of 1000. For example, the following creates a `tmpfs` volume called `foo` with a size of
100 megabyte and `uid` of 1000.
```bash ```bash
$ docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 foo $ docker volume create --driver local \
--opt type=tmpfs \
--opt device=tmpfs \
--opt o=size=100m,uid=1000 \
foo
``` ```
Another example that uses `btrfs`: Another example that uses `btrfs`:
```bash ```bash
$ docker volume create --driver local --opt type=btrfs --opt device=/dev/sda2 foo $ docker volume create --driver local \
--opt type=btrfs \
--opt device=/dev/sda2 \
foo
``` ```
Another example that uses `nfs` to mount the `/path/to/dir` in `rw` mode from `192.168.1.1`: Another example that uses `nfs` to mount the `/path/to/dir` in `rw` mode from
`192.168.1.1`:
```bash ```bash
$ docker volume create --driver local --opt type=nfs --opt o=addr=192.168.1.1,rw --opt device=:/path/to/dir foo $ docker volume create --driver local \
--opt type=nfs \
--opt o=addr=192.168.1.1,rw \
--opt device=:/path/to/dir \
foo
``` ```
## Related commands
## Related information
* [volume inspect](volume_inspect.md) * [volume inspect](volume_inspect.md)
* [volume ls](volume_ls.md) * [volume ls](volume_ls.md)

View File

@ -25,32 +25,36 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Returns information about a volume. By default, this command renders all results Returns information about a volume. By default, this command renders all results
in a JSON array. You can specify an alternate format to execute a in a JSON array. You can specify an alternate format to execute a
given template for each result. Go's given template for each result. Go's
[text/template](http://golang.org/pkg/text/template/) package describes all the [text/template](http://golang.org/pkg/text/template/) package describes all the
details of the format. details of the format.
Example output: ## Examples
$ docker volume create ```bash
85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d $ docker volume create
$ docker volume inspect 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
[ $ docker volume inspect 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
{ [
"Name": "85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d", {
"Driver": "local", "Name": "85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d",
"Mountpoint": "/var/lib/docker/volumes/85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d/_data", "Driver": "local",
"Status": null "Mountpoint": "/var/lib/docker/volumes/85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d/_data",
} "Status": null
] }
]
{% raw %} {% raw %}
$ docker volume inspect --format '{{ .Mountpoint }}' 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d $ docker volume inspect --format '{{ .Mountpoint }}' 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
/var/lib/docker/volumes/85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d/_data /var/lib/docker/volumes/85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d/_data
{% endraw %} {% endraw %}
```
## Related information ## Related commands
* [volume create](volume_create.md) * [volume create](volume_create.md)
* [volume ls](volume_ls.md) * [volume ls](volume_ls.md)

View File

@ -34,22 +34,32 @@ Options:
-q, --quiet Only display volume names -q, --quiet Only display volume names
``` ```
List all the volumes Docker knows about. You can filter using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section for more information about available filter options. ## Description
Example output: List all the volumes known to Docker. You can filter using the `-f` or
`--filter` flag. Refer to the [filtering](#filtering) section for more
information about available filter options.
## Examples
### Create a volume
```bash ```bash
$ docker volume create rosemary $ docker volume create rosemary
rosemary rosemary
$docker volume create tyler
$ docker volume create tyler
tyler tyler
$ docker volume ls $ docker volume ls
DRIVER VOLUME NAME DRIVER VOLUME NAME
local rosemary local rosemary
local tyler local tyler
``` ```
## Filtering ### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`) than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@ -61,7 +71,7 @@ The currently supported filters are:
* label (`label=<key>` or `label=<key>=<value>`) * label (`label=<key>` or `label=<key>=<value>`)
* name (a volume's name) * name (a volume's name)
### dangling #### dangling
The `dangling` filter matches on all volumes not referenced by any containers The `dangling` filter matches on all volumes not referenced by any containers
@ -74,7 +84,7 @@ DRIVER VOLUME NAME
local rosemary local rosemary
``` ```
### driver #### driver
The `driver` filter matches volumes based on their driver. The `driver` filter matches volumes based on their driver.
@ -88,7 +98,7 @@ local rosemary
local tyler local tyler
``` ```
#### Label #### label
The `label` filter matches volumes based on the presence of a `label` alone or The `label` filter matches volumes based on the presence of a `label` alone or
a `label` and a value. a `label` and a value.
@ -97,8 +107,10 @@ First, let's create some volumes to illustrate this;
```bash ```bash
$ docker volume create the-doctor --label is-timelord=yes $ docker volume create the-doctor --label is-timelord=yes
the-doctor the-doctor
$ docker volume create daleks --label is-timelord=no $ docker volume create daleks --label is-timelord=no
daleks daleks
``` ```
@ -113,7 +125,7 @@ local daleks
local the-doctor local the-doctor
``` ```
As can be seen in the above example, both volumes with `is-timelord=yes`, and As the above example demonstrates, both volumes with `is-timelord=yes`, and
`is-timelord=no` are returned. `is-timelord=no` are returned.
Filtering on both `key` *and* `value` of the label, produces the expected result: Filtering on both `key` *and* `value` of the label, produces the expected result:
@ -134,17 +146,20 @@ $ docker volume ls --filter label=is-timelord=yes --filter label=is-timelord=no
DRIVER VOLUME NAME DRIVER VOLUME NAME
``` ```
### name #### name
The `name` filter matches on all or part of a volume's name. The `name` filter matches on all or part of a volume's name.
The following filter matches all volumes with a name containing the `rose` string. The following filter matches all volumes with a name containing the `rose` string.
$ docker volume ls -f name=rose ```bash
DRIVER VOLUME NAME $ docker volume ls -f name=rose
local rosemary
## Formatting DRIVER VOLUME NAME
local rosemary
```
### Formatting
The formatting options (`--format`) pretty-prints volumes output The formatting options (`--format`) pretty-prints volumes output
using a Go template. using a Go template.
@ -168,13 +183,16 @@ The following example uses a template without headers and outputs the
`Name` and `Driver` entries separated by a colon for all volumes: `Name` and `Driver` entries separated by a colon for all volumes:
```bash ```bash
{% raw %}
$ docker volume ls --format "{{.Name}}: {{.Driver}}" $ docker volume ls --format "{{.Name}}: {{.Driver}}"
vol1: local vol1: local
vol2: local vol2: local
vol3: local vol3: local
{% endraw %}
``` ```
## Related information ## Related commands
* [volume create](volume_create.md) * [volume create](volume_create.md)
* [volume inspect](volume_inspect.md) * [volume inspect](volume_inspect.md)

View File

@ -25,12 +25,15 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Remove all unused volumes. Unused volumes are those which are not referenced by any containers Remove all unused volumes. Unused volumes are those which are not referenced by any containers
Example output: ## Examples
```bash ```bash
$ docker volume prune $ docker volume prune
WARNING! This will remove all volumes not used by at least one container. WARNING! This will remove all volumes not used by at least one container.
Are you sure you want to continue? [y/N] y Are you sure you want to continue? [y/N] y
Deleted Volumes: Deleted Volumes:
@ -40,7 +43,7 @@ my-named-vol
Total reclaimed space: 36 B Total reclaimed space: 36 B
``` ```
## Related information ## Related commands
* [volume create](volume_create.md) * [volume create](volume_create.md)
* [volume ls](volume_ls.md) * [volume ls](volume_ls.md)

View File

@ -28,12 +28,18 @@ Options:
--help Print usage --help Print usage
``` ```
## Description
Remove one or more volumes. You cannot remove a volume that is in use by a container. Remove one or more volumes. You cannot remove a volume that is in use by a container.
$ docker volume rm hello ## Examples
hello
## Related information ```bash
$ docker volume rm hello
hello
```
## Related commands
* [volume create](volume_create.md) * [volume create](volume_create.md)
* [volume inspect](volume_inspect.md) * [volume inspect](volume_inspect.md)

Some files were not shown because too many files have changed in this diff Show More