command: docker container update aliases: docker container update, docker update short: Update configuration of one or more containers long: |- 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. > [!WARNING] > The `docker update` and `docker container update` commands are not supported > for Windows containers. { .warning } usage: docker container update [OPTIONS] CONTAINER [CONTAINER...] pname: docker container plink: docker_container.yaml options: - option: blkio-weight value_type: uint16 default_value: "0" description: | Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpu-period value_type: int64 default_value: "0" description: Limit CPU CFS (Completely Fair Scheduler) period deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpu-quota value_type: int64 default_value: "0" description: Limit CPU CFS (Completely Fair Scheduler) quota deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpu-rt-period value_type: int64 default_value: "0" description: Limit the CPU real-time period in microseconds deprecated: false hidden: false min_api_version: "1.25" experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpu-rt-runtime value_type: int64 default_value: "0" description: Limit the CPU real-time runtime in microseconds deprecated: false hidden: false min_api_version: "1.25" experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpu-shares shorthand: c value_type: int64 default_value: "0" description: CPU shares (relative weight) details_url: '#cpu-shares' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpus value_type: decimal description: Number of CPUs deprecated: false hidden: false min_api_version: "1.29" experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpuset-cpus value_type: string description: CPUs in which to allow execution (0-3, 0,1) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpuset-mems value_type: string description: MEMs in which to allow execution (0-3, 0,1) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: kernel-memory value_type: bytes default_value: "0" description: Kernel memory limit (deprecated) details_url: '#kernel-memory' deprecated: true hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: memory shorthand: m value_type: bytes default_value: "0" description: Memory limit details_url: '#memory' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: memory-reservation value_type: bytes default_value: "0" description: Memory soft limit deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: memory-swap value_type: bytes default_value: "0" description: 'Swap limit equal to memory plus swap: -1 to enable unlimited swap' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: pids-limit value_type: int64 default_value: "0" description: Tune container pids limit (set -1 for unlimited) deprecated: false hidden: false min_api_version: "1.40" experimental: false experimentalcli: false kubernetes: false swarm: false - option: restart value_type: string description: Restart policy to apply when a container exits details_url: '#restart' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false inherited_options: - option: help value_type: bool default_value: "false" description: Print usage deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false examples: |- The following sections illustrate ways to use this command. ### Update a container's cpu-shares (--cpu-shares) {#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: ```console $ docker update --cpu-shares 512 abebf7571666 ``` ### Update a container with cpu-shares and memory (-m, --memory) {#memory} To update multiple resource configurations for multiple containers: ```console $ docker update --cpu-shares 512 -m 300M abebf7571666 hopeful_morse ``` ### Update a container's kernel memory constraints (--kernel-memory) {#kernel-memory} 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. > [!NOTE] > The `--kernel-memory` option has been deprecated since Docker 20.10. For example, if you started a container with this command: ```console $ docker run -dit --name test --kernel-memory 50M ubuntu bash ``` You can update kernel memory while the container is running: ```console $ docker update --kernel-memory 80M test ``` If you started a container without kernel memory initialized: ```console $ 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 (--restart) {#restart} 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: ```console $ docker update --restart=on-failure:3 abebf7571666 hopeful_morse ``` Note that if the container is started with `--rm` flag, you cannot update the restart policy for it. The `AutoRemove` and `RestartPolicy` are mutually exclusive for the container. deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false