Гид по технологиям

Управление плагинами Docker Engine

9 min read Docker Обновлено 27 Nov 2025
Управление плагинами Docker Engine
Управление плагинами Docker Engine

TL;DR

Плагины Docker расширяют возможности Docker Engine — сеть, хранение и логирование — и устанавливаются через CLI командой docker plugin install. Управление включает установку, включение/отключение, изменение настроек, обновление и удаление; важно проверять права доступа плагина и тестировать в изолированной среде перед продакшен-внедрением.

Быстрые ссылки

  • Все о плагинах
  • Установка плагина
  • Просмотр сведений о плагине
  • Включение и отключение плагинов
  • Изменение настроек плагина
  • Обновление плагинов
  • Итоги

Docker Engine поддерживает систему плагинов, которая позволяет добавить в среду выполнения контейнеров дополнительные возможности. Через плагины реализуют дополнительные драйверы хранения, сетевые стеки и системы логирования — многие решения доступны как сторонние расширения.

Современные версии Docker Engine включают инструменты управления плагинами в CLI. В этом руководстве рассматривается управляемая система плагинов, которая интегрирована с Docker CLI. Плагины, использующие устаревшую (legacy) систему, по‑прежнему требуют ручной установки и обслуживания.

Схема: плагины Docker и их типы

Все о плагинах

Плагины расширяют Docker Engine возможностями, которые слишком специфичны, чтобы включать их в базовую установку. Обычно вы не взаимодействуете с плагином напрямую: после установки ресурсы, которые он предоставляет, становятся доступны в стандартных командах Docker.

Типы плагинов:

  • Логирование — добавляют новые драйверы логов, позволяя сохранять логи в внешних системах за пределами хоста.
  • Сеть — расширяют поддержку сетевых драйверов, обеспечивают дополнительные сетевые функции и интеграции.
  • Том/Volume — добавляют файловые системы и драйверы томов для работы с персистентными данными.

Также есть плагины, выходящие за рамки этих трёх категорий. Плагины создают сторонние вендоры и сообщество; вы можете написать собственный плагин через публичный API плагинов и Go SDK.

Плагины распространяются через Docker Hub. На странице Explore -> Plugins можно просмотреть доступные плагины и выбрать подходящие решения. На момент просмотра каталога на Hub часто доступны сотни плагинов; всегда сверяйтесь с описанием и правами доступа плагина.

Просмотр плагинов на Docker Hub: список и описание

Если вы разрабатываете плагин, его можно опубликовать в Docker Hub с помощью команды:

docker plugin push

Перед отправкой пакета нужно сформировать плагин командой:

docker plugin create

Эта команда конвертирует манифест и файловую систему плагина в пакет, готовый к публикации. Дополнительную информацию по созданию плагинов см. в официальной документации Docker.

Установка плагина

Для установки используется команда:

docker plugin install

В качестве аргумента передаётся имя плагина из Docker Hub:

docker plugin install store/example/example-plugin:version

Ссылки на плагины выглядят как ссылки на образы и начинаются с store/. Правила тегирования те же, что и для образов: указывайте конкретную версию. В отличие от образов, здесь нельзя опустить тег версии в расчёте на автоматическое подтягивание latest.

Интерфейс плагина на Docker Hub с инструкцией по установке

На странице плагина в Docker Hub можно найти номер версии и готовую команду установки, нажав кнопку «Setup Instructions» или «Инструкции по установке». Для бесплатных плагинов обычно доступна копируемая команда в блоке сверху справа — выполните её в терминале, чтобы начать установку.

Пример инструкции по установке плагина в Docker Hub

Плагины часто требуют доступа к привилегиям хоста для обеспечения своей функциональности. Например, сетевому плагину может понадобиться доступ к сети host Docker для управления подключениями. При установке вы увидите запрос на подтверждение прав доступа — нажмите y и Enter, чтобы продолжить. Для автоматизированных сценариев используйте флаг --grant-all-permissions, но учитывайте риск непреднамеренной выдачи прав при обновлениях.

Диалог подтверждения прав плагина при установке

По умолчанию плагины автоматически включаются после установки. Если вы хотите чтобы плагин остался «установленным, но отключённым», используйте флаг --disable при установке.

Просмотр сведений о плагине

После установки плагин будет виден в выводе:

docker plugin ls

Для получения детальной информации используйте docker inspect с ID или тегом плагина — команда выдаст JSON с манифестом и настройками:

docker inspect eccffc

/wordpress/wp-content/uploads/csit/2021/12/045ebe8d.png

Установка в офлайн/изолированных средах

Docker CLI не предоставляет встроенного механизма установки плагинов в полностью офлайн‑режимe. Но можно перенести плагин в «air‑gapped» окружение: сначала установить его на машине с доступом к сети, затем скопировать файлы плагина на изолированный хост.

Установленные плагины находятся в каталоге /var/lib/docker/plugins на хосте. Каждый плагин располагается в собственной папке с именем, равным ID плагина. Эти ID видны в выводе docker plugin ls.

Содержимое каталога с плагинами Docker: пример файловой структуры

Короткая инструкция по офлайн‑переносу:

  1. На машине с сетью выполнить docker plugin install и дождаться установки.
  2. Остановить Docker на целевом хосте (если там есть Docker).
  3. Скопировать директорию плагина /var/lib/docker/plugins/ в точное местоположение целевого хоста.
  4. Запустить Docker на целевом хосте и проверить, что docker plugin ls показывает скопированный плагин.

Обратите внимание: такой способ переносит бинарные артефакты, но не регистрирует плагин в централизованных реестрах; для корректной работы может потребоваться совпадение версий Docker Engine и сопутствующих библиотек.

Включение и отключение плагинов

Плагины имеют состояние: включён или отключён. Статус виден в последней колонке вывода docker plugin ls. Отключённый плагин не загружается и ведёт себя так, словно он не установлен.

Команды управления статусом:

docker plugin enable 
docker plugin disable 

Если плагин используется конфигурацией Docker Engine или запущенными контейнерами, его отключение может быть заблокировано. Флаг -f применим для принудительного отключения, но используйте его осторожно — это может привести к аварийному завершению работы контейнеров.

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

docker plugin rm 

Команда rm ведёт себя так же, как disable, при попытке удалить активно используемый плагин; при необходимости можно добавить -f для принудительного удаления.

Изменение настроек плагина

Авторы плагинов могут объявлять настраиваемые параметры, доступные через CLI. Изменить настройку можно командой:

docker plugin set example-plugin setting-key=new-value

Замените example-plugin на ID или имя вашего плагина. Новое значение для ключа setting-key станет new-value.

Просмотр параметров плагина через inspect

Доступные параметры различаются у разных плагинов и обычно документированы в описании плагина на Docker Hub. Docker CLI не имеет отдельной команды для перечисления всех доступных настроек, но они присутствуют в выводе docker plugin inspect в поле Settings. Там вы обнаружите объекты с полями Name и Settable — по ним понятно, какие опции можно менять через CLI.

Советы по изменению настроек:

  • Всегда просматривайте docker plugin inspect перед изменением, чтобы понять допустимые значения.
  • При критичных для работы плагина изменениях сначала тестируйте в staging‑среде.
  • Документируйте изменения для других администраторов (какие ключи и значения вы меняли).

Обновление плагинов

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

docker plugin update 

Команда загрузит и установит последнюю версию плагина с Docker Hub. Если у вас уже стоит самая новая версия, команда произведёт повторную установку текущей версии. При обновлении вас снова попросят подтвердить выдачу любых новых привилегий; флаг --grant-all-permissions позволяет пропустить подтверждение в неинтерактивных средах.

Нет команды для массового обновления всех плагинов сразу. Подписывайтесь на релиз‑каналы вендоров плагинов и применяйте обновления по мере выхода, чтобы сохранять безопасность и поддержку.

Безопасность и привилегии

Важно понимать модель угроз при использовании плагинов: плагин — это код, запускаемый на вашем хосте с правами, которые вы ему предоставили. Рассматривайте плагины как сторонний код с полностью доверенной зоной влияния.

Рекомендации по безопасности:

  • Предоставляйте минимально необходимые привилегии. Откажитесь от --grant-all-permissions, если плагин этого не требует для функциональности.
  • Проверяйте происхождение плагина: изучайте вендора, открытый исходный код, количество загрузок и отзывы.
  • Тестируйте плагины в изолированной среде до внедрения в продакшен.
  • Мониторьте логи и поведение хоста после установки/обновления.
  • Проводите периодические ревью установленных плагинов и их разрешений.

Приватность и соответствие требованиям (GDPR и подобное): плагины с доступом к сети или файловой системе могут передавать или записывать персональные данные. Оцените риски: отключайте функции передачи данных, если они не нужны, и документируйте, какие данные собираются/передаются.

Тестирование и сценарии приёма

Перед выпуском в продакшен применяйте следующую мини‑методологию:

  1. Оценка: изучите описание, права доступа и репутацию плагина.
  2. Подготовка среды: создайте staging с теми же версиями Docker и конфигурацией, что и прод.
  3. Установка: выполните установку с опцией --disable, затем ручное включение в контролируемый момент.
  4. Функциональное тестирование: запустите сценарии, которые используют функциональность плагина (создание томов, сетей, индексирование логов и т. п.).
  5. Нагрузочное тестирование: проверьте влияние на производительность и ресурсы хоста.
  6. Мониторинг и откат: настройте метрики и логи; подготовьте шаги отката.

Критерии приёмки (пример):

  • Плагин корректно создаёт/подключает тома в 100% тестовых случаев.
  • Нагрузка на CPU и память остаётся в допустимых пределах (по SLA среды).
  • Нет утечек файловой системы или сетевых неожиданных подключений.

Инцидентный план и откат

Если плагин вызывает проблемы, используйте следующий пошаговый порядок действий:

  1. Отключите плагин: docker plugin disable .
  2. Если отключение заблокировано, принудительно: docker plugin disable -f .
  3. При необходимости удалите плагин: docker plugin rm -f .
  4. Перезапустите Docker Engine: systemctl restart docker или эквивалент для вашей системы.
  5. Проверяйте логи Docker и системные логи: journalctl -u docker -f.
  6. При откате на предыдущую версию — установите конкретный тег: docker plugin install store/vendor/plugin:previous-version.

Эти шаги следует автоматизировать в виде playbook’а для быстрого реагирования и тестировать на тренировочных стендах.

Роль‑ориентированные чек‑листы

Администратор платформы:

  • Проверил источник и права плагина.
  • Установил плагин в staging.
  • Настроил мониторинг и оповещения.
  • Подготовил план отката.

Разработчик приложения:

  • Проверил совместимость приложения с поведением плагина.
  • Запустил интеграционные тесты с использованием плагина.
  • Документировал зависимости в репозитории.

Инженер по безопасности:

  • Проанализировал scope привилегий плагина.
  • Провёл аудиt кода/конфигурации (если доступен код).
  • Убедился в отсутствии передачи чувствительных данных.

Когда плагины не подходят и альтернативы

Примеры, когда плагин — плохой выбор:

  • Нужна тонкая интеграция с внутрянней компонентой платформы, которой нет у доступных плагинов.
  • Политика безопасности запрещает сторонний код с широкими привилегиями.
  • Требуется высокая отказоустойчивость и низкая латентность, которую сложно гарантировать для сторонних плагинов.

Альтернативы:

  • Встроенные возможности Docker (если они покрывают задачу).
  • Внешние сервисы и интеграции через sidecar‑контейнеры или внешние агенты.
  • Самостоятельная реализация функциональности внутри приложения.

Совместимость и миграция

  • Плагины могут зависеть от конкретных версий Docker Engine; проверяйте совместимость в описании плагина.
  • Переход с legacy плагинов обычно требует ручной установки и переноса конфигурации; тестируйте поведение на staging.

Ментальные модели и эвристики

  • Относитесь к плагину как к драйверу оборудования: он расширяет ядро платформы и становится точкой доверия.
  • Давайте права только тогда, когда функциональность действительно требует их.
  • Минимизируйте число сторонних плагинов, чтобы сократить поверхность атаки.

1‑строчный глоссарий

  • Плагин — расширение Docker Engine, реализующее дополнительные драйверы и интеграции.
  • Volume — персистентное хранилище, управляемое плагином или локально.
  • Network driver — компонент, который реализует сетевые возможности для контейнеров.
  • Docker Hub — публичный реестр образов и плагинов.

Сводка

Плагины Docker дают мощный инструмент для расширения функциональности Docker Engine: сетевые решения, драйверы хранения и системы логирования. Управление плагинами производится через Docker CLI: установка, включение/отключение, изменение настроек, обновление и удаление. Перед внедрением в продакшен проводите тщательную проверку привилегий и тестирование в изолированной среде. Подготовьте план отката и мониторинг — это снизит риски и поможет быстро реагировать на инциденты.

Важно помнить: плагин — это сторонний код, выполняющийся с правами хоста. Относитесь к нему как к критичному компоненту инфраструктуры и применяйте практики безопасности и тестирования.

Важно

  • Тестируйте в staging перед продакшеном.
  • Минимизируйте права плагина.
  • Документируйте конфигурации и процессы обновления.

Конец руководства.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как устроить идеальную вечеринку для просмотра ТВ
Развлечения

Как устроить идеальную вечеринку для просмотра ТВ

Как распаковать несколько RAR‑файлов сразу
Инструменты

Как распаковать несколько RAR‑файлов сразу

Приватный просмотр в Linux: как и зачем
Приватность

Приватный просмотр в Linux: как и зачем

Windows 11 не видит iPod — способы исправить
Руководство

Windows 11 не видит iPod — способы исправить

PS5: как настроить игровые пресеты
Консоли

PS5: как настроить игровые пресеты

Как переключить камеру в Omegle на iPhone и Android
Руководство

Как переключить камеру в Omegle на iPhone и Android