Implemet docker update command

It's used for updating properties of one or more containers, we only
support resource configs for now. It can be extended in the future.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Upstream-commit: 8799c4fc0feadede6ae60e77bd7d9dfd7cc72a79
Component: engine
This commit is contained in:
Qiang Huang
2015-12-28 19:19:26 +08:00
parent a2f37707c9
commit c4af30652d
22 changed files with 728 additions and 2 deletions

View File

@ -1003,6 +1003,50 @@ Status Codes:
- **404** no such container
- **500** server error
### Update a container
`POST /containers/(id)/update`
Update resource configs of one or more containers.
**Example request**:
POST /containers/(id)/update HTTP/1.1
Content-Type: application/json
{
"HostConfig": {
"Resources": {
"BlkioWeight": 300,
"CpuShares": 512,
"CpuPeriod": 100000,
"CpuQuota": 50000,
"CpusetCpus": "0,1",
"CpusetMems": "0",
"Memory": 314572800,
"MemorySwap": 514288000,
"MemoryReservation": 209715200,
"KernelMemory": 52428800,
}
}
}
**Example response**:
HTTP/1.1 200 OK
Content-Type: application/json
{
"Warnings": []
}
Status Codes:
- **200** no error
- **400** bad parameter
- **404** no such container
- **500** server error
### Rename a container
`POST /containers/(id)/rename`

File diff suppressed because one or more lines are too long

View File

@ -59,6 +59,7 @@ You start the Docker daemon with the command line. How you start the daemon affe
* [stop](stop.md)
* [top](top.md)
* [unpause](unpause.md)
* [update](update.md)
* [wait](wait.md)
### Hub and registry commands

View File

@ -0,0 +1,61 @@
<!--[metadata]>
+++
title = "update"
description = "The update command description and usage"
keywords = ["resources, update, dynamically"]
[menu.main]
parent = "smn_cli"
+++
<![end-metadata]-->
## update
Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]
Updates container resource limits
--help=false Print usage
--blkio-weight=0 Block IO (relative weight), 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)
-m, --memory="" Memory limit
--memory-reservation="" Memory soft limit
--memory-swap="" Total memory (memory + swap), '-1' to disable swap
--kernel-memory="" Kernel memory limit: container must be stopped
The `docker update` command dynamically updates container resources. 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` value, you can specify these
options on a running or a stopped container. You can only update
`--kernel-memory` on a stopped container. When you run `docker update` on
stopped container, the next time you restart it, the container uses those
values.
## EXAMPLES
The following sections illustrate ways to use this command.
### Update a container with cpu-shares=512
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
```