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

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

8 min read Docker Обновлено 01 Dec 2025
Управление плагинами Docker Engine
Управление плагинами Docker Engine

Логотип Docker с иллюстрацией плагинов

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

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

Что такое плагины

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

Определение: Плагин — это распределённый пакет, содержащий манифест и файловую систему, который интегрируется с Docker Engine и предоставляет один или несколько типов ресурсов.

Основные типы плагинов:

  • Логирование — драйверы логирования для отправки логов в внешние системы.
  • Сеть — плагины, добавляющие новые типы сетей и сетевой функционал.
  • Том (volume) — плагины, добавляющие новые файловые системы и драйверы для персистентного хранения.

Существует множество плагинов от сообщества и вендоров. Их можно писать самостоятельно, используя публичный API плагинов и Go SDK.

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

Просмотр плагинов на Docker Hub — список и фильтры

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

docker plugin push

Перед этим подготовьте пакет с помощью:

docker plugin create

Подробнее по авторству плагинов см. документацию Docker.

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

Плагины устанавливаются командой:

docker plugin install 

Пример:

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

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

Копирование команды установки с Docker Hub

На странице плагина можно скопировать готовую команду установки через кнопку Setup Instructions. При установке плагин обычно запрашивает разрешения на доступ к ресурсам хоста. Например, сетевому плагину нужен доступ к сети host.

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

Плагин по умолчанию автоматически включается после установки — это позволяет запускать скрипты предустановки. Чтобы установить плагин в отключённом состоянии, используйте флаг --disable.

Диалог установки плагина с запросом разрешений

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

Примеры команд

Установка последней доступной версии конкретного тега:

docker plugin install store/library/example:1.2.3

Установка и отключение по умолчанию (требуется ручочное включение позже):

docker plugin install --disable store/library/example:1.2.3

Установка без интерактивных запросов (доверие всем разрешениям):

docker plugin install --grant-all-permissions store/library/example:1.2.3

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

Список установленных плагинов:

docker plugin ls

Более подробную информацию по конкретному плагину даёт docker plugin inspect — она выводит JSON с манифестом и метаданными:

docker plugin inspect 

Пример вывода содержит поле Settings с объектами Name и Settable, где перечислены настраиваемые параметры плагина.

Инспекция плагина через docker inspect — пример JSON

Графическое представление информации о плагине

Оффлайн‑установка (air‑gapped)

Docker CLI не поддерживает прямую установку плагинов в офлайн‑режиме. Обходной путь:

  1. На машине с доступом в сеть установите плагин стандартной командой.
  2. Найдите каталог с установленным плагином на этой машине: /var/lib/docker/plugins/.
  3. Скопируйте весь каталог плагина на офлайн‑хост (scp/rsync/portable storage).
  4. На офлайн‑хосте поместите папку в /var/lib/docker/plugins/ и убедитесь в правах владельца и режима.
  5. Перезапустите сервис Docker (systemd или docker daemon) чтобы он обнаружил новый плагин.

Пример копирования:

scp -r /var/lib/docker/plugins/eccffc user@offline-host:/tmp/plugins/
ssh user@offline-host 'sudo mv /tmp/plugins/eccffc /var/lib/docker/plugins/ && sudo chown -R root:root /var/lib/docker/plugins/eccffc && sudo systemctl restart docker'

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

Содержимое каталога плагина в /var/lib/docker/plugins

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

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

Включение:

docker plugin enable 

Отключение:

docker plugin disable 

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

Удаление плагина:

docker plugin rm 

Удаление ведёт себя аналогично disable при столкновении с активным использованием — может потребоваться -f.

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

Плагин может объявлять настраиваемые параметры. Для изменения используйте:

docker plugin set  =

Пример:

docker plugin set example-plugin log_level=debug

Список доступных настроек не выводится отдельной командой, но доступен в docker plugin inspect в поле Settings.

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

Команда обновления:

docker plugin update 

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

Нет команды для массового обновления всех плагинов — обновления выполняются по одному. Подпишитесь на релизные уведомления от поставщиков плагинов и применяйте обновления согласно вашей политике обновлений и тестирования.

Критерии приёмки плагина

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

  • Установлен и успешно включён в тестовой среде.
  • Нет утечек информации и лишних привилегий при запуске.
  • Работоспособность функций в сценариях отказа проверена (контролируемые рестарты).
  • Совместимость с текущей версией Docker Engine подтверждена.
  • Документация плагина изучена: доступные настройки, ограничения, known issues.

Безопасность и лучшие практики

Важно:

  • Минимизируйте применение --grant-all-permissions без ревью кода плагина.
  • Запускайте плагины в изолированных тестовых средах перед продакшеном.
  • Мониторьте журналы и поведение системы после установки и обновлений.
  • Ограничьте доступ к Docker Hub и управление плагинами только доверенным администраторам.

Security hardening — чеклист:

  • Проверка подписей/поставщика плагина и репутации.
  • Аудит исходного кода (если доступен) или тесты поведения в песочнице.
  • Минимизация прав доступа к хосту (если возможно).
  • Регулярные ревью списка установленных плагинов.

Роли и обязанности (кто что делает)

  • DevOps/Системный админ: установка, обновление, мониторинг, обеспечение безопасности.
  • Разработчик приложения: тестирование работоспособности в контейнерах, проверка совместимости API плагина.
  • Вендор/Поставщик плагина: поддержка, релизы, документация и патчи.

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

Администратор:

  • Проверить источник и репутацию плагина.
  • Выполнить установку в тестовом кластере.
  • Протестировать поведение при рестартах и обновлениях.
  • Задокументировать процесс установки/отката.

Разработчик:

  • Интеграционные тесты с плагином в CI.
  • Обновление зависимостей и фиксация версий.

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

  • Провести оценку прав и возможных векторов атаки.
  • Настроить мониторинг и оповещения.

Метод выбора плагина — мини‑методология

  1. Определите потребность: сеть, логирование или тома.
  2. Поиск на Docker Hub по ключевым словам и фильтрации по обновлениям.
  3. Ознакомьтесь с документацией и примерами использования.
  4. Запустите в тестовой среде и выполните нагрузочное тестирование.
  5. Оцените безопасность (привилегии, исходники, активности).
  6. Утвердите и включите в релиз‑процесс.

Тесты и критерии приёмки (acceptance)

Тестовые кейсы:

  • Установка без ошибок и успешный старт плагина.
  • Функциональный тест ключевого сценария (создание тома/сеть/логирование).
  • Тест на отказ: удаление/отключение плагина не вызывает краха критичных сервисов.
  • Переустановка и откат на предыдущую версию сохраняют работоспособность.

Критерий успеха: все критичные тесты проходят в тестовой среде, риски документированы.

Откат и план инцидента

Runbook для отката:

  1. Определите идентификатор плагина (docker plugin ls).
  2. Если новый плагин нарушил работу, выполните:
docker plugin disable  || docker plugin rm -f 
  1. Возвратите конфигурацию контейнеров к состоянию до установки (если требуется).
  2. При необходимости восстановите файлы плагина из резервной копии и перезапустите Docker.
  3. Проведите пост‑mortem и обновите процедуру проверки плагина.

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

Рекомендации по совместимости и миграции

  • Перед обновлением Docker Engine проверьте совместимость плагинов с новой версией.
  • При миграции на другие хосты экспортируйте настройки плагинов и тома данных.
  • Используйте фиксацию версий при установке (не оставляйте теги типа latest).

Когда плагин не подходит (контрпример)

Если вам нужна лёгкая аутентификация логов в облако, а плагин требует доступа ко всем сетевым интерфейсам хоста и не поддерживает ограничение прав — это знак, что такой плагин не подходит для сред с повышенными требованиями безопасности.

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

  • Использовать sidecar‑контейнеры для логирования, если внешний плагин слишком привилегирован.
  • Настроить сетевые решения уровня хоста (CNI) вместо плагина, если требуется строгий контроль.

Decision tree для решения «устанавливать плагин или нет» (Mermaid)

flowchart TD
  A[Нужна новая функциональность?] -->|Нет| B[Не устанавливать плагин]
  A -->|Да| C[Доступен ли официальный/проверенный плагин?]
  C -->|Нет| D[Рассмотреть разработку собственного решения или sidecar]
  C -->|Да| E[Требуются ли привилегии хоста?]
  E -->|Да| F[Оценить риски, провести аудит]
  E -->|Нет| G[Установить в тестовую среду и протестировать]
  F -->|Риски приемлемы| G
  F -->|Риски неприемлемы| D

Практические примеры и сниппеты (cheat sheet)

Просмотр и состояние:

docker plugin ls
docker plugin inspect 

Установка с отключением по умолчанию:

docker plugin install --disable store/library/example:1.2.3

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

docker plugin set example-plugin max_conn=100

Обновление:

docker plugin update example-plugin

Удаление:

docker plugin rm example-plugin

Частые проблемы и их решения

  • Проблема: плагин запрашивает чрезмерные привилегии. Решение: не использовать --grant-all-permissions, запросить у вендора объяснение и/или выполнить аудит.

  • Проблема: после копирования плагина в офлайн‑режиме он не отображается. Решение: проверьте права владельца файлов, целевую директорию и перезапустите Docker.

  • Проблема: отключение запрещено из‑за активного использования. Решение: определить зависимые контейнеры и аккуратно переключить их на альтернативы или остановить.

Локальные альтернативы и подводные камни (для региона и среды)

  • Взаимодействие с частными реестрами: при использовании внутренних реестров проверьте, доступны ли нужные плагины в локальном реестре или требуется репликация из Docker Hub.
  • Политики обновлений: централизованные политики могут блокировать автоматические обновления — планируйте проверку и тестирование заранее.

Краткое резюме

Docker плагины дают гибкий способ расширения функциональности движка: сети, тома и логирование. Управление выполняется через CLI; установка — по одной единице, обновление тоже. Для офлайн‑установки копируйте каталоги плагинов и перезапускайте Docker. Всегда тестируйте плагины в изолированной среде и оценивайте риски безопасности перед продакшен‑внедрением.

Ключевые примеры плагинов: Elastic Logging Plugin (потоковая отправка логов в Elastic), vSphere для Docker (использование VMWare vSphere для томов), Weave Net (мультикаст и шифрование сетевого трафика). Если нужного решения нет, используйте публичный API плагинов для разработки собственного.


Важно: перед установкой любого плагина создайте резервные копии критичных данных и документируйте все шаги установки и отката.

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

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство