docker update

Обновляет конфигурацию одного или нескольких контейнеров

Использование

$ docker update [OPTIONS] CONTAINER [CONTAINER...]

Обратитесь к разделу параметров для обзора доступных OPTIONS для этой команды.

Описание

Команда docker update динамически обновляет конфигурацию контейнера. Вы можете использовать эту команду, чтобы контейнеры не потребляли слишком много ресурсов с хоста Docker. С помощью одной команды вы можете установить ограничения для одного контейнера или для многих. Чтобы указывает более одного контейнера, предоставьте список имён или идентификаторов контейнеров, разделенных пробелами.

За исключением параметра --kernel-memory, вы можете указывает данные параметры для работающего или остановленного контейнера. В версии ядра старше 4.6 вы можете обновить --kernel-memory только в остановленном контейнере или в работающем контейнере с инициализированной памятью ядра.

Предупреждение

Команды docker update и docker container update не поддерживаются для контейнеров Windows.

Примеры использования этой команды см. в разделе примеров далее.

Параметры

Имя, сокращенно

По умолчанию

Описание

--blkio-weight

Блокировать ввод-вывод (относительный вес), от 10 до 1000 или 0 для отключения (по умолчанию 0)

--cpu-period

Ограничьте период CPU CFS (Completely Fair Scheduler)

--cpu-quota

Ограничьте квоту CPU CFS (Completely Fair Scheduler)

--cpu-rt-period

Ограничьте период реального времени процессора в микросекундах

--cpu-rt-runtime

Ограничьте время работы процессора в режиме реального времени в микросекундах

--cpu-shares, -c

Доли ЦП (относительный вес)

--cpus

Количество процессоров

--cpuset-cpus

ЦП, в которых разрешено выполнение (0-3, 0,1)

--cpuset-mems

MEM, в которых разрешено выполнение (0-3, 0,1)

--kernel-memory

Ограничение памяти ядра

--memory, -m

Лимит памяти

--memory-reservation

Мягкий лимит памяти

--memory-swap

Предел подкачки равен объему памяти плюс подкачка: „-1“ для включения неограниченного подкачки

--pids-limit

API 1.40+ Настраивает предел PID контейнера (устанавливает -1 для неограниченного)

--restart

Политика перезапуска для применения при выходе из контейнера

Примеры

В следующих разделах показаны способы использования этой команды.

Обновляет доли ЦП контейнера

Чтобы ограничить долю ЦП контейнера до 512, сначала определяет имя или идентификатор контейнера. Вы можете использовать docker ps, чтобы найти данные значения. Вы также можете использовать идентификатор, возвращаемый командой docker run. Затем выполняет следующее:

$ docker update --cpu-shares 512 abebf7571666

Обновляет контейнер с общими ресурсами процессора и памятью

Чтобы обновить несколько конфигураций ресурсов для нескольких контейнеров:

$ docker update --cpu-shares 512 -m 300M abebf7571666 hopeful_morse

Обновляет ограничения памяти ядра контейнера

Вы можете обновить лимит памяти ядра контейнера, используя параметр --kernel-memory. В версии ядра старше 4.6 данный параметр можно обновить в работающем контейнере, только если контейнер был запущен с --kernel-memory . Если контейнер был запущен без --kernel-memory, вам необходимо останавливает контейнер перед обновлением памяти ядра.

Примечание

Опция --kernel-memory устарела, начиная с Docker 20.10.

Например, если вы запустили контейнер с помощью этой команды:

$ docker run -dit --name test --kernel-memory 50M ubuntu bash

Вы можете обновлять память ядра во время работы контейнера:

$ docker update --kernel-memory 80M test

Если вы запустили контейнер без инициализации памяти ядра:

$ docker run -dit --name test2 --memory 300M ubuntu bash

Обновить память ядра работающего контейнера test2 не удастся. Перед обновлением параметра --kernel-memory необходимо останавливает контейнер. При следующем запуске контейнер использует новое значение.

Версия ядра новее (включая) 4.6 не имеет этого ограничения, вы можете использовать --kernel-memory так же, как и другие варианты.

Обновляет политику перезапуска контейнера

Вы можете изменяет политику перезапуска контейнера в работающем контейнере. Новая политика перезапуска вступает в силу сразу после запуска docker update в контейнере.

Чтобы обновить политику перезапуска для одного или нескольких контейнеров:

$ docker update --restart=on-failure:3 abebf7571666 hopeful_morse

Обратите внимание, что если контейнер запущен с флагом «–rm», вы не можете обновить для него политику перезапуска. AutoRemove и RestartPolicy являются взаимоисключающими для контейнера.