Управление Docker
Gately управляет контейнерами, Compose-проектами, образами, сетями и томами хоста через сокет Docker. Раздел открывается в боковой панели пунктом «Docker» и состоит из шести вкладок: «Контейнеры», «Compose», «Образы», «Сети», «Тома» и «Система». Если подключиться к Docker не удаётся, вверху страницы отображаются подробности ошибки и кнопка быстрого перехода к настройкам.
Включение
Если Gately работает в контейнере, примонтируйте сокет Docker хоста:
-v /var/run/docker.sock:/var/run/docker.sockАдрес Docker по умолчанию — unix:///var/run/docker.sock; его можно изменить в настройках на вкладке «Система».
Безопасность
Монтирование docker.sock равносильно выдаче прав root на хосте. Если управление Docker не нужно, уберите этот том и защитите панель управления (двухфакторная аутентификация, секретный путь входа, доступ только из внутренней сети).
Контейнеры
- Список фильтруется по состоянию («Все», «Запущенные», «Остановленные»); на карточке показаны образ, сети, порты, монтирования и статус обновления;
- Действия: запуск, остановка, перезапуск, приостановка, возобновление, принудительное завершение, переименование, удаление (с возможностью удалить анонимные тома), создание образа из контейнера;
- Самозащита: Gately распознаёт собственный контейнер и проект Compose и отклоняет операции, которые отрезали бы доступ к нему самому: остановку, принудительное завершение, паузу и удаление контейнера, а также
downдля его проекта. - Создание и редактирование: форма охватывает имя, образ (можно предварительно загрузить), запуск после создания, команду и Entrypoint, переменные окружения, проброс портов (TCP/UDP, с возможностью указать IP хоста), монтирования (каталог bind и том volume, в том числе только для чтения), основную и дополнительные сети, фиксированный IP, алиасы, политику перезапуска (
no,always,unless-stopped,on-failureс максимальным числом попыток), привилегированный режим, добавление и удаление capabilities, проброс устройств, пользователя, рабочий каталог, имя хоста, DNS, метки, лимит памяти (МБ), число ядер CPU, TTY и удержание stdin. При редактировании контейнер пересоздаётся на основе исходной конфигурации: параметры, которых нет в форме, сохраняют прежние значения, а при неудаче происходит автоматический откат; - Вкладки на странице сведений:
- Обзор: состояние, код выхода, число перезапусков, состояние здоровья, сведения о сетях, монтирования, Compose-проект и сервис, к которым относится контейнер;
- Журналы: просмотр последних записей, с возможностью показать метки времени;
- Терминал: интерактивный терминал внутри работающего контейнера (по умолчанию
/bin/sh, можно указать команду и пользователя; цвета — как в настройках веб-терминала); - Файлы: просмотр файлов контейнера, редактирование текста прямо в браузере (до 1 МиБ), загрузка, скачивание (каталоги упаковываются в tar.gz), переименование, создание каталогов, удаление; удаление выполняется командой
rm -rfвнутри контейнера, поэтому контейнер должен быть запущен; - Мониторинг: выборки CPU, памяти, сетевого и дискового ввода-вывода, числа процессов, а также список процессов внутри контейнера.
Compose
Compose-проекты собираются по меткам контейнеров, например com.docker.compose.project; для каждого проекта отображаются состояние (запущен, частично запущен, остановлен) и его сервисы.
- Запуск, остановка, перезапуск, приостановка, возобновление,
down(с возможностью удалить именованные тома), общий журнал (каждая строка с префиксом имени сервиса); - Создание проекта: вставьте содержимое compose-файла, Gately запишет его в
compose/<name>/compose.yamlв каталоге конфигурации и выполнит up. Такие проекты помечаются как «managed»: файл Compose можно редактировать, сохранять и применять, а весь проект — удалить; - Для существующих проектов первый compose-файл можно редактировать в браузере (файл должен быть доступен на запись) и при желании сразу выполнить up после сохранения;
up, загрузка образов, сборка и чтение/запись файлов зависят от командыdocker composeи доступа к пути compose-файла; если они недоступны, интерфейс сообщает «Команда docker compose не обнаружена».
Образы
- В списке показаны теги, размер, дата создания, число использующих образ контейнеров и признак dangling; на странице сведений — история слоёв, переменные окружения, открытые порты и т. д.;
- Загрузка (pull): аутентификация выполняется по учётным записям реестров из настроек «Система»; если прямая загрузка не удалась и заданы адреса зеркал, они пробуются по очереди, после чего образу возвращается исходное имя. Поддерживается поиск в Docker Hub;
- Push, добавление тегов, удаление (в том числе принудительное), сборка (встроенный Dockerfile или адрес Git, с аргументами сборки), импорт и экспорт tar (формат
docker save); - Проверка обновлений: для отдельного контейнера или «Проверить все обновления»; результат отмечается на каждом контейнере;
- Обновление в один клик: после загрузки нового образа контейнер пересоздаётся с прежней конфигурацией; при ошибке выполняется автоматический откат к исходному контейнеру. Поддерживается пакетное обновление нескольких контейнеров;
- «Очистить dangling» одним действием удаляет образы без тегов, которые не используются.
Сети и тома
- Сети: в списке показаны драйвер, область действия, подсеть, шлюз и подключённые контейнеры. Сети можно создавать (драйвер, подсеть, шлюз, внутренняя сеть, IPv6) и удалять, контейнеры можно подключать и отключать; встроенные сети защищены от изменений;
- Тома: показаны драйвер, точка монтирования, размер, число ссылок и использующие том контейнеры. Тома можно создавать, удалять (в том числе принудительно), экспортировать в tar.gz и импортировать из tar.gz. Экспорт и импорт выполняются через временный вспомогательный контейнер alpine; если образа нет, он загружается автоматически.
Система
Вкладка «Система» содержит:
- Сведения о хосте и Docker: версия, версия API, ОС и архитектура, ядро, CPU и память, драйвер хранилища, каталог данных, число контейнеров и образов, версия Compose CLI;
- Использование диска: количество, размер и объём, который можно освободить, для образов, контейнеров, томов и кэша сборки;
- Очистка: остановленные контейнеры, dangling-образы, все неиспользуемые образы, неиспользуемые сети, неиспользуемые тома (данные теряются безвозвратно), кэш сборки;
- Настройки:
| Поле | Описание |
|---|---|
host | Адрес Docker, по умолчанию unix:///var/run/docker.sock |
mirrors | Список адресов зеркал; пробуются по очереди, если прямая загрузка не удалась. Не зависят от registry-mirrors в /etc/docker/daemon.json: их Docker использует автоматически, а страница настроек показывает только для чтения как «Зеркала демона» |
registries | Данные для входа в приватные реестры (server, username, password); пароль в интерфейсе маскируется |
autoCheckHours | Значение больше 0 включает автоматическую проверку обновлений образов контейнеров с указанным интервалом в часах; 0 отключает проверку |
Фоновые задачи
Длительные операции — pull, push, сборка, пакетная проверка, пакетное обновление, Compose up и другие — выполняются как фоновые задачи. Панель задач внизу страницы показывает вывод в реальном времени и состояние (выполняется, завершена, ошибка); можно просматривать историю и очищать завершённые задачи. После обновления страницы все ещё выполняющиеся задачи восстанавливаются.
Уведомления о событиях
Gately подписывается на поток событий Docker и публикует событие docker.exited, когда контейнер аварийно завершается (код выхода не 0) или убивается из-за нехватки памяти (OOM). Каналы получения настраиваются в Центре уведомлений. Штатная остановка с кодом выхода 0 уведомления не вызывает. Если Docker временно недоступен, подписка автоматически повторяется каждые 30 секунд.
API
Полное описание интерфейса — в Docker API.