TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4637 1.26K
👨‍💻 Podman умеет обновлять и откатывать контейнеры

Watchtower закрылся. Те, кто держал Docker-контейнеры актуальными через этот инструмент, оказались перед вопросом: что теперь?

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

Основа механизма — команда podman auto-update. Она проверяет контейнеры с нужным лейблом и обновляет их, если в реестре появился новый образ.

Чтобы контейнер участвовал в автообновлениях, ему нужен лейбл io.containers.autoupdate. Значение registry сравнивает дайджесты образов с реестром, local проверяет локально собранные образы.

Лейбл задаётся при создании контейнера:
podman run -d --name my-service \
--label "io.containers.autoupdate=registry" \
docker.io/library/nginx:latest


В Quadlet-файле достаточно одной строки в секции [Container]:
AutoUpdate=registry


Само обновление запускается через systemd-таймер. Включается он одной командой:
systemctl --user enable --now podman-auto-update.timer


Пример конфига для обновлений каждый понедельник в 3:30 ночи:
[Timer]
OnCalendar=Mon *-*-* 03:30:00
RandomizedDelaySec=30m


Перед тем как писать выражение для OnCalendar, стоит проверить его через systemd-analyze calendar — он сразу покажет следующее время срабатывания и не даст ошибиться с форматом.

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

Для этого нужно три условия:

• контейнер управляется через systemd
• флаг --rollback включён
• systemd может понять, что контейнер сломан.

Самый надёжный способ это обеспечить — health check с sdnotify. Контейнер сам сигналит systemd о готовности. Если сигнал не пришёл за отведённое время, systemd фиксирует сбой и Podman откатывается.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#root_prompt
  • 👍 2
  • ❤ 1
  • 🤔 1
More from @devopsslib
  1. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 10, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →