Root Only

подайте на пропитание, бывшему админу бывшего локалхоста

Menu
  • Администрирование
  • Программирование
  • Монетизация
  • Продвижение
  • Хлам
Menu

Docker Healthcheck-watchdog на bash/systemd

Простая реализация сторожа состояния docker-контейнеров с использованием bash, systemd и docker events.

/usr/sbin/docker-healthkeeper

#!/bin/bash

docker events -f 'type=container' -f 'event=health_status' --format '{{.ID}}|{{.Action}}' | while read -r EVENT; do
    if [ "${EVENT#*|}" == 'health_status: unhealthy' ]; then
        echo -n 'restart container id='
        docker restart "${EVENT%|*}"
    fi
done
echo 'close docker socket'

/lib/systemd/system/docker-healthkeeper.service

[Unit]
Description=HealthKeeper for docker daemon
ConditionPathExists=/usr/bin/docker
After=docker.service
Requires=docker.service
Wants=docker.service

[Service]
Type=simple
ExecStart=/usr/sbin/docker-healthkeeper
Restart=always
RestartSec=1

[Install]
WantedBy=docker.service

Выше приведённый скрипт отслеживает события изменения состояния healthcheck контейнеров и немедленно перезапускает контейнеры, перешедшие из состояния healthy в failure с соответствующей записью в лог journald

Внимание: поддержка событий в докере появилась с версии 1.4.0 (декабрь 2014), по этому более ранние версии пробовать не имеет смысла.

Поиск

Метки

adb antiddos bash bubble cache console ddos debian docker eclipse elasticsearch elk ffmpeg fs gentoo glusterfs grafana healthcheck hicam ipcam jquery jscript mail mysql mysqldump nginx nodejs php putty python redirect replication RSS serial socat ssh ssh-agent sysfs systemd tinymce uart usb vim vnc windows

Безопасность

© 2026 Root Only