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), по этому более ранние версии пробовать не имеет смысла.

Поиск

Метки

archlinux awk bash binlog cache console css debian docker ffmpeg filemanager hash healthcheck ipcam java jquery jscript loginza mail md5 mysql mysqldump netbeans nginx php PHP-функция на JScript python qemu quote redirect replication RSS session sniffer socat systemd tinymce unix-socket usb vim windows 7 youtube авторизация продвижение социальные сети

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

© 2023 Root Only