mirror of https://github.com/docker/cli.git
docs: use more tables in run reference and minor fixups
This adds two more tables to the run reference documentation. - the list of 'modes' for Network settings is now a table. - the "note" for `--net="host"` was moved from the list to the detailed description. - the 'options' for "Runtime constraints on CPU and memory" are now a table - slightly re-worded the description for "memory" options, e.g. "It is not allowed..." was rewriten to "The *container* is not allowed..." - fix example in "Runtime privilege, Linux capabilities, and LXC configuration" being indented twice - slightly reduced indenting in some `usage` output to be better readable. - fixes a typo `/ets/hosts` -> `/etc/hosts` Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
18fea6ea4a
commit
3359add082
|
@ -2,6 +2,12 @@ page_title: Docker run reference
|
||||||
page_description: Configure containers at runtime
|
page_description: Configure containers at runtime
|
||||||
page_keywords: docker, run, configure, runtime
|
page_keywords: docker, run, configure, runtime
|
||||||
|
|
||||||
|
<!-- TODO (@thaJeztah) define more flexible table/td classes -->
|
||||||
|
<style>
|
||||||
|
.content-body table .no-wrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
# Docker run reference
|
# Docker run reference
|
||||||
|
|
||||||
**Docker runs processes in isolated containers**. When an operator
|
**Docker runs processes in isolated containers**. When an operator
|
||||||
|
@ -50,9 +56,9 @@ following options.
|
||||||
- [Container Identification](#container-identification)
|
- [Container Identification](#container-identification)
|
||||||
- [Name (--name)](#name-name)
|
- [Name (--name)](#name-name)
|
||||||
- [PID Equivalent](#pid-equivalent)
|
- [PID Equivalent](#pid-equivalent)
|
||||||
- [IPC Settings](#ipc-settings)
|
- [IPC Settings (--ipc)](#ipc-settings-ipc)
|
||||||
- [Network Settings](#network-settings)
|
- [Network Settings](#network-settings)
|
||||||
- [Restart Policies<br />(--restart)](#restart-policies-restart)
|
- [Restart Policies (--restart)](#restart-policies-restart)
|
||||||
- [Clean Up (--rm)](#clean-up-rm)
|
- [Clean Up (--rm)](#clean-up-rm)
|
||||||
- [Runtime Constraints on CPU and Memory](#runtime-constraints-on-cpu-and-memory)
|
- [Runtime Constraints on CPU and Memory](#runtime-constraints-on-cpu-and-memory)
|
||||||
- [Runtime Privilege, Linux Capabilities, and LXC Configuration](#runtime-privilege-linux-capabilities-and-lxc-configuration)
|
- [Runtime Privilege, Linux Capabilities, and LXC Configuration](#runtime-privilege-linux-capabilities-and-lxc-configuration)
|
||||||
|
@ -134,9 +140,10 @@ While not strictly a means of identifying a container, you can specify a version
|
||||||
image you'd like to run the container with by adding `image[:tag]` to the command. For
|
image you'd like to run the container with by adding `image[:tag]` to the command. For
|
||||||
example, `docker run ubuntu:14.04`.
|
example, `docker run ubuntu:14.04`.
|
||||||
|
|
||||||
## PID Settings
|
## PID Settings (--pid)
|
||||||
--pid="" : Set the PID (Process) Namespace mode for the container,
|
--pid="" : Set the PID (Process) Namespace mode for the container,
|
||||||
'host': use the host's PID namespace inside the container
|
'host': use the host's PID namespace inside the container
|
||||||
|
|
||||||
By default, all containers have the PID namespace enabled.
|
By default, all containers have the PID namespace enabled.
|
||||||
|
|
||||||
PID namespace provides separation of processes. The PID Namespace removes the
|
PID namespace provides separation of processes. The PID Namespace removes the
|
||||||
|
@ -154,13 +161,16 @@ within the container.
|
||||||
This command would allow you to use `strace` inside the container on pid 1234 on
|
This command would allow you to use `strace` inside the container on pid 1234 on
|
||||||
the host.
|
the host.
|
||||||
|
|
||||||
## IPC Settings
|
## IPC Settings (--ipc)
|
||||||
|
|
||||||
--ipc="" : Set the IPC mode for the container,
|
--ipc="" : Set the IPC mode for the container,
|
||||||
'container:<name|id>': reuses another container's IPC namespace
|
'container:<name|id>': reuses another container's IPC namespace
|
||||||
'host': use the host's IPC namespace inside the container
|
'host': use the host's IPC namespace inside the container
|
||||||
|
|
||||||
By default, all containers have the IPC namespace enabled.
|
By default, all containers have the IPC namespace enabled.
|
||||||
|
|
||||||
IPC (POSIX/SysV IPC) namespace provides separation of named shared memory segments, semaphores and message queues.
|
IPC (POSIX/SysV IPC) namespace provides separation of named shared memory
|
||||||
|
segments, semaphores and message queues.
|
||||||
|
|
||||||
Shared memory segments are used to accelerate inter-process communication at
|
Shared memory segments are used to accelerate inter-process communication at
|
||||||
memory speed, rather than through pipes or through the network stack. Shared
|
memory speed, rather than through pipes or through the network stack. Shared
|
||||||
|
@ -196,10 +206,41 @@ explicitly by providing a MAC via the `--mac-address` parameter (format:
|
||||||
|
|
||||||
Supported networking modes are:
|
Supported networking modes are:
|
||||||
|
|
||||||
* none - no networking in the container
|
<table>
|
||||||
* bridge - (default) connect the container to the bridge via veth interfaces
|
<thead>
|
||||||
* host - use the host's network stack inside the container. Note: This gives the container full access to local system services such as D-bus and is therefore considered insecure.
|
<tr>
|
||||||
* container - use another container's network stack
|
<th class="no-wrap">Mode</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="no-wrap"><strong>none</strong></td>
|
||||||
|
<td>
|
||||||
|
No networking in the container.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="no-wrap"><strong>bridge</strong> (default)</td>
|
||||||
|
<td>
|
||||||
|
Connect the container to the bridge via veth interfaces.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="no-wrap"><strong>host</strong></td>
|
||||||
|
<td>
|
||||||
|
Use the host's network stack inside the container.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="no-wrap"><strong>container</strong>:<name|id></td>
|
||||||
|
<td>
|
||||||
|
Use the network stack of another container, specified via
|
||||||
|
its *name* or *id*.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
#### Mode: none
|
#### Mode: none
|
||||||
|
|
||||||
|
@ -227,6 +268,9 @@ container. The container's hostname will match the hostname on the host
|
||||||
system. Publishing ports and linking to other containers will not work
|
system. Publishing ports and linking to other containers will not work
|
||||||
when sharing the host's network stack.
|
when sharing the host's network stack.
|
||||||
|
|
||||||
|
> **Note**: `--net="host"` gives the container full access to local system
|
||||||
|
> services such as D-bus and is therefore considered insecure.
|
||||||
|
|
||||||
#### Mode: container
|
#### Mode: container
|
||||||
|
|
||||||
With the networking mode set to `container` a container will share the
|
With the networking mode set to `container` a container will share the
|
||||||
|
@ -410,20 +454,52 @@ container:
|
||||||
### Memory constraints
|
### Memory constraints
|
||||||
|
|
||||||
We have four ways to set memory usage:
|
We have four ways to set memory usage:
|
||||||
- memory=inf, memory-swap=inf (not specify any of them)
|
|
||||||
There is no memory limit, you can use as much as you want.
|
|
||||||
|
|
||||||
- memory=L<inf, memory-swap=inf (specify memory and set memory-swap as `-1`)
|
<table>
|
||||||
It is not allowed to use more than L bytes of memory, but use as much swap
|
<thead>
|
||||||
as you want (only if the host supports swap memory).
|
<tr>
|
||||||
|
<th>Option</th>
|
||||||
- memory=L<inf, memory-swap=2*L (specify memory without memory-swap)
|
<th>Result</th>
|
||||||
It is not allowed to use more than L bytes of memory, swap *plus* memory
|
</tr>
|
||||||
usage is double of that.
|
</thead>
|
||||||
|
<tbody>
|
||||||
- memory=L<inf, memory-swap=S<inf, L<=S (specify both memory and memory-swap)
|
<tr>
|
||||||
It is not allowed to use more than L bytes of memory, swap *plus* memory
|
<td class="no-wrap">
|
||||||
usage is limited by S.
|
<strong>memory=inf, memory-swap=inf</strong> (default)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
There is no memory limit for the container. The container can use
|
||||||
|
as much memory as needed.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="no-wrap"><strong>memory=L<inf, memory-swap=inf</strong></td>
|
||||||
|
<td>
|
||||||
|
(specify memory and set memory-swap as <code>-1</code>) The container is
|
||||||
|
not allowed to use more than L bytes of memory, but can use as much swap
|
||||||
|
as is needed (if the host supports swap memory).
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="no-wrap"><strong>memory=L<inf, memory-swap=2*L</strong></td>
|
||||||
|
<td>
|
||||||
|
(specify memory without memory-swap) The container is not allowed to
|
||||||
|
use more than L bytes of memory, swap *plus* memory usage is double
|
||||||
|
of that.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="no-wrap">
|
||||||
|
<strong>memory=L<inf, memory-swap=S<inf, L<=S</strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
(specify both memory and memory-swap) The container is not allowed to
|
||||||
|
use more than L bytes of memory, swap *plus* memory usage is limited
|
||||||
|
by S.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
### CPU share constraint
|
### CPU share constraint
|
||||||
|
|
||||||
|
@ -492,7 +568,6 @@ will be accessible within the container.
|
||||||
By default, the container will be able to `read`, `write`, and `mknod` these devices.
|
By default, the container will be able to `read`, `write`, and `mknod` these devices.
|
||||||
This can be overridden using a third `:rwm` set of options to each `--device` flag:
|
This can be overridden using a third `:rwm` set of options to each `--device` flag:
|
||||||
|
|
||||||
|
|
||||||
$ sudo docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk /dev/xvdc
|
$ sudo docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk /dev/xvdc
|
||||||
|
|
||||||
Command (m for help): q
|
Command (m for help): q
|
||||||
|
@ -770,7 +845,7 @@ If you restart the source container (`servicename` in this case), the recipient
|
||||||
container's `/etc/hosts` entry will be automatically updated.
|
container's `/etc/hosts` entry will be automatically updated.
|
||||||
|
|
||||||
> **Note**:
|
> **Note**:
|
||||||
> Unlike host entries in the `/ets/hosts` file, IP addresses stored in the
|
> Unlike host entries in the `/etc/hosts` file, IP addresses stored in the
|
||||||
> environment variables are not automatically updated if the source container is
|
> environment variables are not automatically updated if the source container is
|
||||||
> restarted. We recommend using the host entries in `/etc/hosts` to resolve the
|
> restarted. We recommend using the host entries in `/etc/hosts` to resolve the
|
||||||
> IP address of linked containers.
|
> IP address of linked containers.
|
||||||
|
|
Loading…
Reference in New Issue