---
title: "POST /containers/{id}/update"
method: POST
path: "/containers/{id}/update"
---

# POST /containers/{id}/update

`POST /containers/{id}/update`

Update a container

## Path parameters

- `id` string, required

## Request body

- Resources — A container's resources (cgroups config, ulimits, etc)
  - `CpuShares` integer — An integer value representing this container's relative CPU weight versus other containers.
  - `Memory` integer — Memory limit in bytes.
  - `CgroupParent` string — Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist.
  - `BlkioWeight` integer — Block IO weight (relative weight).
  - `BlkioWeightDevice` object[] — Block IO weight (relative device weight) in the form: ``` [{"Path": "device_path", "Weight": weight}] ```
    - `Path` string
    - `Weight` integer
  - `BlkioDeviceReadBps` ThrottleDevice[] — Limit read rate (bytes per second) from a device, in the form: ``` [{"Path": "device_path", "Rate": rate}] ```
    - `Path` string — Device path
    - `Rate` integer — Rate
  - `BlkioDeviceWriteBps` ThrottleDevice[] — Limit write rate (bytes per second) to a device, in the form: ``` [{"Path": "device_path", "Rate": rate}] ```
    - `Path` string — Device path
    - `Rate` integer — Rate
  - `BlkioDeviceReadIOps` ThrottleDevice[] — Limit read rate (IO per second) from a device, in the form: ``` [{"Path": "device_path", "Rate": rate}] ```
    - `Path` string — Device path
    - `Rate` integer — Rate
  - `BlkioDeviceWriteIOps` ThrottleDevice[] — Limit write rate (IO per second) to a device, in the form: ``` [{"Path": "device_path", "Rate": rate}] ```
    - `Path` string — Device path
    - `Rate` integer — Rate
  - `CpuPeriod` integer — The length of a CPU period in microseconds.
  - `CpuQuota` integer — Microseconds of CPU time that the container can get in a CPU period.
  - `CpuRealtimePeriod` integer — The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks.
  - `CpuRealtimeRuntime` integer — The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks.
  - `CpusetCpus` string — CPUs in which to allow execution (e.g., `0-3`, `0,1`).
  - `CpusetMems` string — Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems.
  - `Devices` DeviceMapping[] — A list of devices to add to the container.
    - `PathOnHost` string
    - `PathInContainer` string
    - `CgroupPermissions` string
  - `DeviceCgroupRules` string[] — a list of cgroup rules to apply to the container
  - `DeviceRequests` DeviceRequest[] — A list of requests for devices to be sent to device drivers.
    - `Driver` string — The name of the device driver to use for this request. Note that if this is specified the capabilities are ignored when selecting a device driver.
    - `Count` integer
    - `DeviceIDs` string[]
    - `Capabilities` array[] — A list of capabilities; an OR list of AND lists of capabilities. Note that if a driver is specified the capabilities have no effect on selecting a driver as the driver name is used directly. Note that if no driver is specified the capabilities are used to select a driver with the required capabilities.
      - string[]
    - `Options` object — Driver-specific options, specified as a key/value pairs. These options are passed directly to the driver.
  - `MemoryReservation` integer — Memory soft limit in bytes.
  - `MemorySwap` integer — Total memory limit (memory + swap). Set as `-1` to enable unlimited swap.
  - `MemorySwappiness` integer — Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100.
  - `NanoCpus` integer — CPU quota in units of 10<sup>-9</sup> CPUs.
  - `OomKillDisable` boolean — Disable OOM Killer for the container.
  - `Init` boolean, nullable — Run an init inside the container that forwards signals and reaps processes. This field is omitted if empty, and the default (as configured on the daemon) is used.
  - `PidsLimit` integer, nullable — Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null` to not change.
  - `Ulimits` object[] — A list of resource limits to set in the container. For example: ``` {"Name": "nofile", "Soft": 1024, "Hard": 2048} ```
    - `Name` string
    - `Soft` integer
    - `Hard` integer
  - `CpuCount` integer — The number of usable CPUs (Windows only). On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
  - `CpuPercent` integer — The usable percentage of the available CPUs (Windows only). On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
  - `IOMaximumIOps` integer — Maximum IOps for the container system drive (Windows only)
  - `IOMaximumBandwidth` integer — Maximum IO in bytes per second for the container system drive (Windows only).

## Response `200`

The request has succeeded.

- ContainerUpdateResponse — Response for a successful container-update.
  - `Warnings` string[] — Warnings encountered when updating the container.

---

[API](https://skmtc.net/hexlet/apis/docker-engine-api.md) · [All operations](https://skmtc.net/hexlet/apis/docker-engine-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hexlet/docker-engine-api/versions/7dbd508c79cf/schema)
