Просте управління контейнерами з What’s Up Docker
Що таке What’s Up Docker (WUD): коротке введення
Контейнери, особливо Docker, повністю трансформували світ технологій. Але попри всю потужність Docker, він не пропонує функцію моніторингу образів, яку ви використовуєте, особливо коли йдеться про відстеження доступних оновлень.
Звичайно, це не велика проблема, якщо ви керуєте лише кількома контейнерами. У такому випадку досить легко зупинити їх, видалити старі образи, завантажити нові та перезапустити все вручну.
Але що робити, якщо у вас домашня лабораторія з десятками контейнерів? Або ваша робота включає управління сотнями контейнерів у виробничому середовищі? У такому випадку ручне оновлення швидко перетворюється на кошмар.
Саме тут стає корисною централізована система моніторингу — інструмент, який відстежує всі ваші контейнери, сповіщає про доступні оновлення або навіть оновлює їх автоматично у фоновому режимі.
Протягом років я використовував Watchtower для цього завдання, і він працював чудово. На жаль, він не оновлювався з листопада 2023 року. Це змусило мене шукати нове рішення — і тоді я відкрив для себе What’s Up Docker (WUD).
У цьому посібнику я проведу вас через процес встановлення та налаштування WUD, щоб у вас був надійний спосіб отримувати інформацію про Docker-образи, які ви використовуєте.
Знайомство з What’s Up Docker (WUD)
What’s Up Docker (WUD) — це безкоштовний інструмент з відкритим кодом для самостійного хостингу, створений для спрощення обслуговування Docker-контейнерів шляхом моніторингу оновлень образів.
Принцип роботи досить простий: WUD регулярно перевіряє запущені контейнери у порівнянні з реєстрами Docker для виявлення новіших версій образів. Він робить це шляхом періодичного отримання метаданих про останні доступні теги та порівняння їх з вашими розгорнутими контейнерами.
Коли виявляються оновлення, WUD може автоматично надсилати сповіщення через різні канали зв’язку, включаючи електронну пошту, Slack, Discord, webhooks-інтеграції тощо.
Одна з речей, яку я особисто люблю в WUD — це його гнучкість. Ви можете налаштувати його для роботи в двох різних режимах:
Перший — режим лише для сповіщень. Коли WUD виявляє, що доступна нова версія Docker-образу, він просто повідомляє вам про це. Таким чином, ви зберігаєте повний контроль над тим, коли і як оновлювати ваші контейнери.
Другий режим — повністю автоматизований — робить крок далі. Коли доступне оновлення, WUD автоматично зупиняє запущений контейнер, завантажує оновлений образ і перезапускає контейнер із новою версією. Все це відбувається тихо у фоновому режимі і зазвичай займає лише кілька секунд.
Також WUD може автоматично оновлювати ваш файл “docker-compose.yml”, щоб він вказував на новий образ.
І ось найкраще: WUD дозволяє точно налаштувати цю поведінку для кожного контейнера окремо. Наприклад, ви можете зберегти повний контроль над критично важливими контейнерами і отримувати лише сповіщення про оновлення без автоматичних дій. Водночас, менш важливі контейнери можна налаштувати на автоматичне оновлення без ручного втручання.
Встановлення What’s Up Docker за допомогою Docker Compose
Перший крок — створити каталог проєкту, в якому буде розміщений файл розгортання Docker Compose. Потім перейдіть до нього.
“`bash
mkdir wud
cd wud
“`
Далі відкрийте свій улюблений текстовий редактор терміналу, створіть файл “docker-compose.yml”, вставте вміст нижче, збережіть файл і вийдіть із редактора.
“`yaml
services:
whatsupdocker:
image: getwud/wud
container_name: wud
environment:
– WUD_WATCHER_LOCAL_CRON=0 6 * * *
– WUD_AUTH_BASIC_MY_USER=
– WUD_AUTH_BASIC_MY_HASH=
ports:
– 3000:3000
volumes:
– /var/run/docker.sock:/var/run/docker.sock
“`
Як бачите, налаштування розгортання досить просте. Ключова частина — це розділ “environment”. Змінна “WUD_WATCHER_LOCAL_CRON” використовує стандартний синтаксис CRON для визначення того, як часто WUD повинен перевіряти ваші Docker-контейнери на наявність оновлень. У цьому прикладі він налаштований на запуск щодня о 6:00 ранку, але, звичайно, ви можете налаштувати це під свій розклад.
Але перш ніж ми продовжимо, давайте трохи поговоримо про один з основних компонентів WUD — так звані “спостерігачі” (watchers). Простіше кажучи, спостерігачі визначають, як WUD сканує контейнери.
Вони слідують шаблону (для CRON, зокрема): “WUD_WATCHER_{watcher_name}_CRON”, де “{watcher_name}” може бути будь-якою назвою, яку ви хочете. Наприклад, я використовую “LOCAL” у своєму налаштуванні, але ви можете вибрати щось інше — це повністю залежить від вас.
Наступні дві змінні, “WUD_AUTH_BASIC_MY_USER” і “WUD_AUTH_BASIC_MY_HASH”, використовуються для встановлення імені користувача та пароля для доступу до веб