Текст и данные · Инструкция
Как запустить Docker-контейнер без стандартных Linux capabilities
Не добавляйте `--privileged` как быстрый обход: он выдаёт контейнеру значительно более широкие полномочия. Ниже — послед
Короткий ответ
`--cap-drop=ALL` убирает доступные контейнеру Linux capabilities; при необходимости отдельные возможности можно добавить обратно через `--cap-add`. Практический вариант: `docker run --rm --cap-drop=ALL alpine:latest sh`.
Что делать
- Проверьте исходное состояние: Работайте в нужном репозитории/проекте или контексте инструмента. До изменения зафиксируйте текущее состояние; для последующей проверки используйте `docker inspect --format '{{json .HostConfig.CapDrop}}' CONTAINER`.
- Выполните основное действие: Запустите `docker run --rm --cap-drop=ALL alpine:latest sh`. Если команда содержит пример имени, тега, пакета, контейнера или дистрибутива — замените его своим значением.
- Проверьте результат: Выполните `docker inspect --format '{{json .HostConfig.CapDrop}}' CONTAINER` и сопоставьте вывод с целью страницы: сначала сбросить все linux capabilities контейнера, затем вернуть только действительно нужные. Не продолжайте автоматизацию, если проверка показывает другой объект или состояние.
- Зафиксируйте безопасный рабочий вариант: Если действие должно выполняться в CI или скрипте, сначала сохраните проверенную команду в локальном сценарии и добавьте явную обработку ненулевого кода возврата или отсутствующего объекта.
Перед запуском
- Вы находитесь в нужном проекте, репозитории, Docker context или Python/Node окружении.
- Команда проверки известна заранее: `docker inspect --format '{{json .HostConfig.CapDrop}}' CONTAINER`.
- Имена веток, тегов, пакетов, контейнеров и дистрибутивов заменены на ваши.
- Для необратимых удалённых действий есть резервный путь восстановления или подтверждение в UI/API.
Важно
Не копируйте пример вслепую. Команда `docker run --rm --cap-drop=ALL alpine:latest sh` может менять состояние проекта, registry, remote, контейнера или окружения. Перед запуском проверьте имена объектов, права и текущий контекст.
Почему это работает
`--cap-drop=ALL` убирает доступные контейнеру Linux capabilities; при необходимости отдельные возможности можно добавить обратно через `--cap-add`.
Проверка
- Основное действие: docker run --rm --cap-drop=ALL alpine:latest sh
- Проверка: docker inspect --format '{{json .HostConfig.CapDrop}}' CONTAINER
Что учитывать
Не копируйте пример вслепую. Команда `docker run --rm --cap-drop=ALL alpine:latest sh` может менять состояние проекта, registry, remote, контейнера или окружения. Перед запуском проверьте имена объектов, права и текущий контекст.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. docker container run). Пример и формулировки — редакция N1RO на 2026-09-19.