Docker
INFRAX предоставляет полноценное управление Docker контейнерами на удаленных узлах через установленных агентов. Система автоматически обнаруживает Docker на узлах, позволяет управлять контейнерами, образами, сетями и томами, а также работать с Docker Compose проектами.
Обзор возможностей
INFRAX предоставляет комплексные возможности для управления Docker контейнерами на удаленных узлах сети.
Основные возможности
- Автоматическое обнаружение — система автоматически определяет наличие Docker на узлах
- Управление контейнерами — запуск, остановка, перезапуск, удаление, просмотр логов
- Управление образами — просмотр, удаление, очистка неиспользуемых образов
- Управление сетями — просмотр Docker сетей и подключенных контейнеров
- Управление томами — просмотр и управление Docker томами
- Docker Compose — работа с multi-container приложениями
- Мониторинг в реальном времени — отслеживание CPU, RAM, сети и дисковых операций
- Два режима отображения — плитки и таблица для удобной работы
Все операции с Docker выполняются через установленных на узлах агентов (SSH или RDP), что обеспечивает безопасность и не требует открытия Docker API наружу.
Требования
Для работы с Docker через INFRAX необходимо выполнение следующих условий:
Обязательные требования
- Docker установлен на узле — Docker Engine или Docker Desktop
- Агент INFRAX установлен — агент для Windows (RDP) или Linux (SSH)
- IP адрес узла указан — узел должен иметь настроенный IP адрес
- Docker служба запущена — служба Docker должна быть активна
Если Docker был доступен ранее, но сейчас недоступен, система покажет предупреждение. Это может означать, что служба Docker остановлена или произошла ошибка.
Поддерживаемые платформы
| Платформа | Тип агента | Примечания |
|---|---|---|
| Linux | SSH | Docker Engine, поддержка всех функций |
| Windows | RDP | Docker Desktop, полная поддержка |
| Windows Server | RDP | Docker Engine, Windows containers |
Обнаружение Docker
INFRAX автоматически проверяет наличие Docker на узлах с установленными агентами.
Процесс обнаружения
Автоматическая проверка
- После установки агента — система проверяет наличие Docker
- Определение версии — получение версии Docker Engine
- Создание Docker узла — в дереве узлов появляется дочерний Docker узел
- Кэширование информации — данные о Docker сохраняются для быстрого доступа
Docker узлы — это виртуальные узлы в дереве, которые появляются автоматически под реальными узлами с установленным Docker. При клике на Docker узел открывается интерфейс управления контейнерами.
Статусы обнаружения
| Статус | Описание |
|---|---|
| Docker не установлен | На узле не обнаружен Docker |
| Docker недоступен | Docker был доступен ранее, но сейчас недоступен (возможно, служба остановлена) |
| Docker активен | Docker работает, отображается версия и количество контейнеров |
Интерфейс управления
Интерфейс управления Docker открывается при клике на Docker узел в дереве узлов сети.
Структура интерфейса
Четыре основные вкладки
- Контейнеры — управление Docker контейнерами и Compose проектами
- Сети — просмотр Docker сетей и подключенных контейнеров
- Образы — управление Docker образами
- Тома — управление Docker томами данных
Режимы отображения
Для вкладок Контейнеры, Сети, Образы и Тома доступны два режима просмотра:
| Режим | Описание | Когда использовать |
|---|---|---|
| Плитки | Карточки с визуальным представлением и основными метриками | Для быстрого визуального мониторинга состояния |
| Таблица | Табличное представление с подробной информацией | Для детального анализа и сравнения параметров |
Выбранный режим отображения автоматически сохраняется и применяется при следующем открытии интерфейса Docker.
Панель действий
В верхней части интерфейса расположена панель действий с кнопками, которые меняются в зависимости от активной вкладки:
Действия для вкладки "Контейнеры"
- Запустить контейнер — создание и запуск нового контейнера из образа
- Запустить существующий compose — запуск существующего Docker Compose проекта
- Создать Docker Compose файл — создание нового docker-compose.yml
Действия для вкладки "Образы"
- Удалить неиспользуемые образы — очистка образов, не связанных с контейнерами
- Удалить висячие образы — удаление промежуточных образов без тегов
Управление контейнерами
Вкладка Контейнеры предоставляет полное управление Docker контейнерами на узле.
Просмотр контейнеров
Контейнеры отображаются с группировкой по типу:
Группировка контейнеров
- Docker Compose проекты — контейнеры, являющиеся частью Compose проектов, группируются вместе
- Одиночные контейнеры — контейнеры, не входящие в Compose проекты
Информация о контейнере
Для каждого контейнера отображается:
- Имя контейнера — название Docker контейнера
- Образ — Docker образ, из которого создан контейнер
- Статус — запущен или остановлен
- IP адрес — внутренний IP адрес контейнера в Docker сети
- Порты — проброшенные порты (host:container)
- Время работы — uptime для запущенных контейнеров
- Метрики в реальном времени — CPU, RAM, Network I/O, Disk I/O (для запущенных контейнеров)
Действия с контейнерами
Доступные операции с контейнерами:
| Действие | Описание | Доступно для |
|---|---|---|
| Запустить | Запуск остановленного контейнера | Остановленные контейнеры |
| Остановить | Остановка работающего контейнера | Запущенные контейнеры |
| Перезапустить | Перезапуск контейнера | Все контейнеры |
| Удалить | Удаление контейнера (требует подтверждения) | Все контейнеры |
| Просмотр логов | Отображение логов контейнера | Все контейнеры |
| Детальная информация | Открытие модального окна с подробными данными | Все контейнеры |
Создание нового контейнера
Для запуска нового контейнера:
- Нажмите кнопку Запустить контейнер
- Укажите Docker образ (например,
nginx:latest) - Опционально настройте параметры:
Доступные параметры
- Имя контейнера — пользовательское имя
- Порты — проброс портов (формат: 80:80 или 8080:80)
- Тома — монтирование томов (формат: /host/path:/container/path)
- Переменные окружения — ENV переменные (формат: KEY=VALUE)
- Политика перезапуска — always, unless-stopped, on-failure, no
- Сеть — подключение к Docker сети
- Команда — переопределение команды запуска
Если указанный образ отсутствует на узле, Docker автоматически загрузит его из Docker Hub перед созданием контейнера.
Управление образами
Вкладка Образы позволяет управлять Docker образами на узле.
Информация об образах
Для каждого образа отображается:
- Тег образа — полное название с тегом (например, nginx:latest)
- ID образа — уникальный идентификатор
- Размер — дисковое пространство, занимаемое образом
- Дата создания — когда образ был создан
- Используется контейнерами — количество контейнеров, использующих образ
Действия с образами
| Действие | Описание |
|---|---|
| Удалить образ | Удаление образа (доступно только для неиспользуемых образов) |
| Удалить висячие образы | Очистка промежуточных образов без тегов (dangling images) |
| Удалить неиспользуемые образы | Удаление всех образов, не связанных ни с одним контейнером |
Образ невозможно удалить, если он используется хотя бы одним контейнером (даже остановленным). Сначала необходимо удалить все контейнеры, использующие данный образ.
Очистка образов
Висячие образы (Dangling)
Что это: Промежуточные слои образов, которые остались после пересборки образов. Они не имеют тегов и отображаются как <none>:<none>.
Когда очищать: Регулярно, так как они не используются и занимают место.
Неиспользуемые образы (Unused)
Что это: Образы, которые не связаны ни с одним контейнером (ни запущенным, ни остановленным).
Когда очищать: Когда нужно освободить дисковое пространство и эти образы больше не нужны.
Управление сетями
Вкладка Сети предоставляет информацию о Docker сетях и подключенных к ним контейнерах.
Информация о сетях
Для каждой сети отображается:
- Имя сети — название Docker сети
- ID сети — уникальный идентификатор
- Драйвер — тип сети (bridge, host, overlay, macvlan, none)
- Scope — область видимости (local, global, swarm)
- Подсеть — IP подсеть сети (если настроена)
- Шлюз — IP адрес шлюза
- Подключенные контейнеры — список контейнеров в сети с их IP адресами
Типы сетей
| Тип | Описание |
|---|---|
| bridge | Сеть по умолчанию, изолированная от хост-системы |
| host | Контейнер использует сетевой стек хост-системы |
| overlay | Для связи контейнеров на разных хостах в Docker Swarm |
| macvlan | Контейнер получает MAC адрес и выглядит как физическое устройство |
| none | Контейнер без сетевого интерфейса |
Клик по сети открывает модальное окно с подробной информацией, включая список всех подключенных контейнеров с их IP адресами и MAC адресами.
Управление томами
Вкладка Тома позволяет просматривать и управлять Docker томами данных.
Информация о томах
Для каждого тома отображается:
- Имя тома — название Docker тома
- Драйвер — драйвер хранения (обычно local)
- Точка монтирования — путь в файловой системе хоста
- Дата создания — когда том был создан
- Используется контейнерами — список контейнеров, использующих том
Действия с томами
| Действие | Описание | Доступно для |
|---|---|---|
| Просмотр информации | Детальная информация о томе в модальном окне | Все тома |
| Удалить том | Удаление тома и всех его данных | Только неиспользуемые тома |
Удаление тома приводит к безвозвратной потере всех данных, хранящихся в нем. Убедитесь, что данные больше не нужны или скопированы в другое место.
Типы томов
Named volumes
Именованные тома, управляемые Docker. Имеют понятные имена и легко переиспользуются между контейнерами.
Anonymous volumes
Анонимные тома, созданные автоматически. Имеют случайно сгенерированные имена и обычно привязаны к одному контейнеру.
Docker Compose
INFRAX поддерживает работу с Docker Compose — инструментом для определения и запуска multi-container приложений.
Обнаружение Compose проектов
Система автоматически группирует контейнеры, являющиеся частью Docker Compose проектов:
- Контейнеры с меткой
com.docker.compose.projectгруппируются вместе - Для каждого проекта отображается общая информация и управление
- Показывается количество запущенных и остановленных контейнеров в проекте
Управление Compose проектами
Для каждого Compose проекта доступны следующие операции:
| Команда | Описание | Требуется docker-compose.yml |
|---|---|---|
| up | Создание и запуск всех контейнеров проекта | Да |
| down | Остановка и удаление контейнеров, сетей проекта | Нет |
| start | Запуск остановленных контейнеров проекта | Нет |
| stop | Остановка работающих контейнеров проекта | Нет |
| restart | Перезапуск всех контейнеров проекта | Нет |
| pull | Обновление образов из docker-compose.yml | Да |
Некоторые команды (up, pull) требуют наличия файла docker-compose.yml. Если путь к файлу не найден, доступны только команды управления контейнерами (start, stop, restart, down).
Создание Docker Compose файла
INFRAX позволяет создавать docker-compose.yml файлы прямо из интерфейса:
- Нажмите кнопку Создать Docker Compose файл
- Укажите путь для сохранения файла на удаленном узле
- Введите содержимое docker-compose.yml в редакторе
- Сохраните файл
Возможности редактора
- Подсветка синтаксиса YAML
- Автоматическая валидация формата
- Сохранение на удаленный узел
Запуск существующего Compose проекта
Если на узле уже есть docker-compose.yml файл:
- Нажмите кнопку Запустить существующий compose
- Укажите путь к docker-compose.yml
- Опционально укажите имя проекта
- Система выполнит
docker compose up -d
После запуска Compose проекта система автоматически обнаружит новые контейнеры и сгруппирует их в соответствующий проект.
Мониторинг контейнеров
INFRAX предоставляет мониторинг контейнеров в реальном времени для запущенных контейнеров.
Отслеживаемые метрики
| Метрика | Описание | Единицы измерения |
|---|---|---|
| CPU | Использование процессорного времени контейнером | Проценты (%) |
| Memory | Использование оперативной памяти | Проценты (%) и абсолютные значения (МБ/ГБ) |
| Network I/O | Входящий и исходящий сетевой трафик | Байты/КБ/МБ |
| Disk I/O | Операции чтения и записи на диск | Байты/КБ/МБ |
Обновление метрик
Метрики обновляются автоматически при открытии вкладки контейнеров:
- Первоначальная загрузка при открытии интерфейса
- Автоматическое обновление при возвращении на вкладку
- Индикатор загрузки во время получения данных
Метрики доступны только для контейнеров в статусе "running". Для остановленных контейнеров метрики не отображаются.
Детальная информация о контейнере
При клике на контейнер открывается модальное окно с расширенной информацией:
Дополнительные данные
- ID контейнера — полный ID
- Команда — команда запуска контейнера
- Переменные окружения — ENV переменные
- Монтированные тома — список всех томов
- Сетевые настройки — IP адреса во всех подключенных сетях
- Политика перезапуска — restart policy
- Метки — Docker labels
- История команд — логи контейнера
Рекомендации
Организация контейнеров
Используйте Docker Compose для связанных сервисов
Группируйте взаимосвязанные контейнеры (например, веб-сервер + база данных + кэш) в Docker Compose проекты. Это упрощает управление и обеспечивает согласованность настроек.
Именуйте контейнеры понятно
Используйте осмысленные имена контейнеров вместо автоматически генерируемых. Например: webapp-prod вместо focused_tesla.
Настраивайте политику перезапуска
Для production контейнеров используйте unless-stopped или always, чтобы контейнеры автоматически перезапускались после сбоев или перезагрузки хоста.
Управление ресурсами
Регулярно очищайте неиспользуемые образы
Используйте функции удаления висячих и неиспользуемых образов для освобождения дискового пространства. Старые версии образов быстро накапливаются при частых обновлениях.
Мониторьте использование ресурсов
Следите за метриками CPU и памяти контейнеров. Если контейнер постоянно использует близко к 100% ресурсов, возможно требуется оптимизация или увеличение лимитов.
Используйте именованные тома
Для важных данных создавайте именованные тома вместо анонимных. Это упрощает резервное копирование и переиспользование данных между контейнерами.
Безопасность
Обновляйте образы
Регулярно обновляйте Docker образы до последних версий для получения исправлений безопасности. Используйте команду pull для Compose проектов.
Проверяйте логи
Регулярно просматривайте логи контейнеров для выявления ошибок и потенциальных проблем на ранних стадиях.
Изолируйте сетевое взаимодействие
Создавайте отдельные Docker сети для разных приложений, чтобы контейнеры одного проекта не могли напрямую обращаться к контейнерам другого проекта.
Резервное копирование
Делайте бэкапы томов с данными
Критичные данные из Docker томов должны регулярно копироваться. Запомните расположение точек монтирования томов на хосте для организации резервного копирования.
Сохраняйте docker-compose.yml файлы
Храните копии docker-compose.yml файлов в системе контроля версий (Git) для возможности быстрого восстановления конфигурации.
Устранение проблем
Контейнер не запускается
Проверьте:
- Логи контейнера для выявления ошибок
- Корректность переменных окружения
- Доступность проброшенных портов (конфликты портов)
- Наличие требуемых томов и их доступность
Compose проект не работает
Возможные причины:
- Ошибки в синтаксисе docker-compose.yml
- Путь к docker-compose.yml указан неверно
- Отсутствуют требуемые образы (выполните pull)
- Конфликты имен контейнеров или сетей
Docker недоступен
Решение: Проверьте, что служба Docker запущена на узле. Для Linux: systemctl status docker. Для Windows: проверьте Docker Desktop в трее.