mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
92394785fa
The memory should always be smaller than memoryswap, we should error out with message that user know how to do rather than just an invalid argument error if user update the memory limit bigger than already set memory swap. Signed-off-by: Lei Jitang <leijitang@huawei.com>
150 lines
4.8 KiB
Markdown
150 lines
4.8 KiB
Markdown
% DOCKER(1) Docker User Manuals
|
|
% Docker Community
|
|
% JUNE 2014
|
|
# NAME
|
|
docker-update - Update configuration of one or more containers
|
|
|
|
# SYNOPSIS
|
|
**docker update**
|
|
[**--blkio-weight**[=*[BLKIO-WEIGHT]*]]
|
|
[**--cpu-shares**[=*0*]]
|
|
[**--cpu-period**[=*0*]]
|
|
[**--cpu-quota**[=*0*]]
|
|
[**--cpuset-cpus**[=*CPUSET-CPUS*]]
|
|
[**--cpuset-mems**[=*CPUSET-MEMS*]]
|
|
[**--help**]
|
|
[**--kernel-memory**[=*KERNEL-MEMORY*]]
|
|
[**-m**|**--memory**[=*MEMORY*]]
|
|
[**--memory-reservation**[=*MEMORY-RESERVATION*]]
|
|
[**--memory-swap**[=*MEMORY-SWAP*]]
|
|
[**--restart**[=*""*]]
|
|
CONTAINER [CONTAINER...]
|
|
|
|
# DESCRIPTION
|
|
|
|
The **docker update** command dynamically updates container configuration.
|
|
You can use this command to prevent containers from consuming too many
|
|
resources from their Docker host. With a single command, you can place
|
|
limits on a single container or on many. To specify more than one container,
|
|
provide space-separated list of container names or IDs.
|
|
|
|
With the exception of the **--kernel-memory** option, you can specify these
|
|
options on a running or a stopped container. On kernel version older than
|
|
4.6, You can only update **--kernel-memory** on a stopped container or on
|
|
a running container with kernel memory initialized.
|
|
|
|
# OPTIONS
|
|
|
|
**--blkio-weight**=0
|
|
Block IO weight (relative weight) accepts a weight value between 10 and 1000.
|
|
|
|
**--cpu-shares**=0
|
|
CPU shares (relative weight)
|
|
|
|
**--cpu-period**=0
|
|
Limit the CPU CFS (Completely Fair Scheduler) period
|
|
|
|
**--cpu-quota**=0
|
|
Limit the CPU CFS (Completely Fair Scheduler) quota
|
|
|
|
**--cpuset-cpus**=""
|
|
CPUs in which to allow execution (0-3, 0,1)
|
|
|
|
**--cpuset-mems**=""
|
|
Memory nodes(MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems.
|
|
|
|
**--help**
|
|
Print usage statement
|
|
|
|
**--kernel-memory**=""
|
|
Kernel memory limit (format: `<number>[<unit>]`, where unit = b, k, m or g)
|
|
|
|
Note that on kernel version older than 4.6, you can not update kernel memory on
|
|
a running container if the container is started without kernel memory initialized,
|
|
in this case, it can only be updated after it's stopped. The new setting takes
|
|
effect when the container is started.
|
|
|
|
**-m**, **--memory**=""
|
|
Memory limit (format: <number><optional unit>, where unit = b, k, m or g)
|
|
|
|
Note that the memory should be smaller than the already set swap memory limit.
|
|
If you want update a memory limit bigger than the already set swap memory limit,
|
|
you should update swap memory limit at the same time. If you don't set swap memory
|
|
limit on docker create/run but only memory limit, the swap memory is double
|
|
the memory limit.
|
|
|
|
**--memory-reservation**=""
|
|
Memory soft limit (format: <number>[<unit>], where unit = b, k, m or g)
|
|
|
|
**--memory-swap**=""
|
|
Total memory limit (memory + swap)
|
|
|
|
**--restart**=""
|
|
Restart policy to apply when a container exits (no, on-failure[:max-retry], always, unless-stopped).
|
|
|
|
# EXAMPLES
|
|
|
|
The following sections illustrate ways to use this command.
|
|
|
|
### Update a container's cpu-shares
|
|
|
|
To limit a container's cpu-shares to 512, first identify the container
|
|
name or ID. You can use **docker ps** to find these values. You can also
|
|
use the ID returned from the **docker run** command. Then, do the following:
|
|
|
|
```bash
|
|
$ docker update --cpu-shares 512 abebf7571666
|
|
```
|
|
|
|
### Update a container with cpu-shares and memory
|
|
|
|
To update multiple resource configurations for multiple containers:
|
|
|
|
```bash
|
|
$ docker update --cpu-shares 512 -m 300M abebf7571666 hopeful_morse
|
|
```
|
|
|
|
### Update a container's kernel memory constraints
|
|
|
|
You can update a container's kernel memory limit using the **--kernel-memory**
|
|
option. On kernel version older than 4.6, this option can be updated on a
|
|
running container only if the container was started with **--kernel-memory**.
|
|
If the container was started *without* **--kernel-memory** you need to stop
|
|
the container before updating kernel memory.
|
|
|
|
For example, if you started a container with this command:
|
|
|
|
```bash
|
|
$ docker run -dit --name test --kernel-memory 50M ubuntu bash
|
|
```
|
|
|
|
You can update kernel memory while the container is running:
|
|
|
|
```bash
|
|
$ docker update --kernel-memory 80M test
|
|
```
|
|
|
|
If you started a container *without* kernel memory initialized:
|
|
|
|
```bash
|
|
$ docker run -dit --name test2 --memory 300M ubuntu bash
|
|
```
|
|
|
|
Update kernel memory of running container `test2` will fail. You need to stop
|
|
the container before updating the **--kernel-memory** setting. The next time you
|
|
start it, the container uses the new value.
|
|
|
|
Kernel version newer than (include) 4.6 does not have this limitation, you
|
|
can use `--kernel-memory` the same way as other options.
|
|
|
|
### Update a container's restart policy
|
|
|
|
You can change a container's restart policy on a running container. The new
|
|
restart policy takes effect instantly after you run `docker update` on a
|
|
container.
|
|
|
|
To update restart policy for one or more containers:
|
|
|
|
```bash
|
|
$ docker update --restart=on-failure:3 abebf7571666 hopeful_morse
|
|
```
|