Установка Dozzle на Ubuntu 22.04

Dozzle — простое, лёгкое приложение для просмотра логов в реальном времени. Оно позволяет наблюдать логи контейнеров Docker через веб-интерфейс, выполнять интеллектуальный поиск по regex, разделять экран для одновременного просмотра нескольких логов и скачивать их на локальную машину.
В этой инструкции показано, как установить Dozzle на Ubuntu 22.04 и быстро начать работу.
Предварительные требования
- Сервер с Ubuntu 22.04.
- Настроен пароль root или учётная запись с sudo.
Установка Docker Engine
Сначала установите зависимости:
apt install ca-certificates curl gnupg lsb-release -yДобавьте GPG-ключ и репозиторий Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor > /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.listОбновите индекс пакетов и установите Docker Engine:
apt update -y
apt install docker-ce docker-ce-cli containerd.io -yПроверьте установку:
docker --versionОжидаемый пример вывода:
Docker version 20.10.18, build b40c2f6Важно: если у вас нет доступа к официальному репозиторию Docker (корпоративный прокси, приватная сеть), используйте локальный репозиторий пакетов или обратитесь к администратору сети.
Запуск контейнера Dozzle
Скачайте и запустите контейнер Dozzle командой:
docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:8080 amir20/dozzle:latestПример вывода при первом запуске (объём загрузки образа):
Unable to find image 'amir20/dozzle:latest' locally
latest: Pulling from amir20/dozzle
d1cdc3d3f75b: Pull complete
9208c7e48f51: Pull complete
Digest: sha256:6c60292275a512749e4429ee82acfa473ae64e9692ddaa440110bf8cdcba1b9f
Status: Downloaded newer image for amir20/dozzle:latest
c23860a90ab760ca3102be73f50404ab61edf1e868078991b4533b5f09d1cd98Проверьте список локальных образов:
docker imagesОжидаемый пример вывода:
REPOSITORY TAG IMAGE ID CREATED SIZE
amir20/dozzle latest 8ecfe772f6ef 3 days ago 10MBПроверьте запущенные контейнеры:
docker psОжидаемый пример вывода:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c23860a90ab7 amir20/dozzle:latest "/dozzle" 47 seconds ago Up 46 seconds 0.0.0.0:8888->8080/tcp, :::8888->8080/tcp dozzleКонтейнер Dozzle запущен и слушает порт 8888. Можно проверить открытые сокеты:
ss -altnpПример вывода:
LISTEN 0 4096 0.0.0.0:8888 0.0.0.0:* users:(("docker-proxy",pid=51708,fd=4))
LISTEN 0 4096 [::]:8888 [::]:* users:(("docker-proxy",pid=51714,fd=4)) Доступ к Dozzle через браузер
Откройте браузер и перейдите по адресу: http://your-server-ip:8888
Вы должны увидеть веб-интерфейс Dozzle:

Нажмите на контейнер в левой панели, чтобы просмотреть его логи:

Типовые проблемы и решения
- Контейнер не появляется в списке:
- Убедитесь, что Dozzle запущен с доступом к /var/run/docker.sock.
- Проверьте права доступа на сокет и что Docker использует тот же сокет.
- Порт 8888 занят:
- Измените проброс порта в команде run: -p 8889:8080 или освободите порт.
- Нет логов для контейнера:
- Проверьте, пишет ли контейнер логи в stdout/stderr. Dozzle читает стандартный вывод Docker.
- Проблемы с SELinux/AppArmor:
- На серверах с жёсткой политикой безопасности настройте соответствующие профили или используйте дополнительную привилегию.
Альтернативные способы развёртывания
- docker-compose: удобно для управления версией и параметрами, пример:
version: '3'
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "8888:8080"- Podman: можно запускать с подключением к Docker socket через системный мост, но потребуется адаптация параметров.
- Реверс-прокси: для публичного доступа ставьте Nginx/Traefik с TLS и базовой аутентификацией.
Безопасность и рекомендации для продакшна
- Не открывайте /var/run/docker.sock публично: доступ даёт полный контроль над хостом.
- Размещайте Dozzle за аутентифицированным reverse-proxy (Basic Auth, OAuth, OIDC).
- Ограничьте доступ по IP или VPN.
- Для снижения привилегий используйте промежуточный лог-агент (Fluentd/Vector) и отдавайте Dozzle только агрегированные логи.
Важно: Dozzle сам по себе не обеспечивает аутентификацию. Для защищённого доступа добавьте прокси с SSL и авторизацией.
Рекомендации по использованию (роль-ориентированные чек-листы)
Администратор:
- Убедиться, что Docker обновлён.
- Проверить доступы к /var/run/docker.sock.
- Настроить обратный прокси и TLS.
DevOps-инженер:
- Добавить Dozzle в docker-compose стек при необходимости.
- Мониторить потребление памяти контейнера.
- Настроить ротацию логов на хосте.
Разработчик:
- Фильтровать логи по regex в интерфейсе Dozzle.
- Использовать split-screen для сравнения нескольких контейнеров.
Мини-методология для продакшн-развёртывания
- Подготовка: обновите Docker и систему безопасности.
- Развёртывание: используйте docker-compose с явной версией образа.
- Защита: разместите Dozzle за Nginx с TLS и базовой аутентификацией.
- Наблюдение: добавьте мониторинг и алерты на отказ контейнера.
Критерии приёмки
- Dozzle отвечает на порту 8888 (или указанном).
- Список контейнеров отображается и логи видны.
- Доступ к веб-интерфейсу защищён для публичного окружения.
Заключение
Поздравляем — вы установили Dozzle и можете просматривать логи контейнеров через удобный веб-интерфейс. Для продакшна используйте reverse-proxy и ограничьте доступ к Docker socket. Если нужно — подскажу готовые docker-compose файлы, примеры конфигурации Nginx или шаги по интеграции с Fluentd/Vector.
Полезные команды быстрого доступа
- Перезапустить Dozzle: docker restart dozzle
- Просмотреть логи Dozzle: docker logs -f dozzle
- Остановить и удалить: docker rm -f dozzle
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента