Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?
Linux

Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?

Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?

W tym poradniku dowiesz się:
✅ jak uruchomić kontenery jako usługi systemd
✅ jak je monitorować i restartować automatycznie
✅ jak dodać prosty failover – np. uruchomić zapasowy kontener po awarii głównego
✅ jak sprawdzać statusy i logi


🔧 Krok 1: Kontener jako usługa systemd (przypomnienie)

Załóżmy, że masz dwa kontenery:

  • app-main – główny
  • app-backup – zapasowy (uruchamiany tylko w razie awarii)

Tworzysz dwa pliki .service.


📁 /etc/systemd/system/app-main.service

[Unit]
Description=Aplikacja główna (Docker)
After=docker.service
Requires=docker.service

[Service]
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker start -a app-main
ExecStop=/usr/bin/docker stop app-main

[Install]
WantedBy=multi-user.target

📁 /etc/systemd/system/app-backup.service

[Unit]
Description=Aplikacja zapasowa (Docker)
After=docker.service
Requires=docker.service

[Service]
Restart=no
ExecStart=/usr/bin/docker start -a app-backup
ExecStop=/usr/bin/docker stop app-backup

[Install]
WantedBy=multi-user.target

🧠 Krok 2: Prosty mechanizm failover – z systemd OnFailure=

W pliku app-main.service dodaj:

[Unit]
OnFailure=app-backup.service

✅ Jeśli app-main się nie uruchomi lub się zawiesi, systemd automatycznie wywoła app-backup.service.

 

Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?
Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?

🛠️ Krok 3: Załaduj nowe usługi

sudo systemctl daemon-reload
sudo systemctl enable app-main.service
sudo systemctl enable app-backup.service

Możesz teraz uruchomić:

sudo systemctl start app-main

A w razie błędu app-main, backup uruchomi się automatycznie.


🧪 Krok 4: Symulacja awarii

Wymuś awarię kontenera głównego:

docker stop app-main
docker rm app-main

Potem:

sudo systemctl restart app-main

🔍 Sprawdź:

systemctl status app-backup

🧰 Krok 5: Monitorowanie statusów i logów

📋 Statusy:

systemctl status app-main
systemctl status app-backup

📜 Logi:

journalctl -u app-main
journalctl -u app-backup

🚨 Zaawansowana opcja: monitorowanie zdrowia kontenera (docker inspect)

Możesz stworzyć usługę, która:

  • co X minut sprawdza status kontenera app-main
  • jeśli kontener jest nieaktywny, uruchamia app-backup

Przykład skryptu /usr/local/bin/docker-failover.sh:

#!/bin/bash
if ! docker inspect -f '{{.State.Running}}' app-main | grep true; then
  echo "app-main down, starting backup..."
  docker start app-backup
fi

Zrób usługę i timer systemd, który uruchamia ten skrypt co 5 minut. (Możesz poprosić o osobny poradnik – opiszę to krok po kroku).

Czytaj  Jak skutecznie tworzyć kopie zapasowe w Windows 11 i Linux – kompletny poradnik

✅ Podsumowanie

Dzięki integracji Docker + systemd + failover:

Co zyskujesz? Dzięki czemu?
Automatyczny restart Restart=on-failure
Reakcja na awarię OnFailure=
Pełna kontrola systemctl, journalctl, logi
Możliwość rozszerzenia Skrypty monitorujące i timery

To idealne rozwiązanie dla:

  • VPS-ów i serwerów bare-metal
  • środowisk bez orkiestratora
  • prostych wdrożeń produkcyjnych i dev/test

 

Polecane wpisy
Monitorowanie stanu zaszyfrowanych wolumenów LUKS w Linuksie – cryptsetup, systemd i alerty e-mail
Monitorowanie stanu zaszyfrowanych wolumenów LUKS w Linuksie – cryptsetup, systemd i alerty e-mail

📊 Monitorowanie stanu zaszyfrowanych wolumenów LUKS w Linuksie – cryptsetup, systemd i alerty e-mail Zaszyfrowane wolumeny (np. LUKS) to doskonałe Czytaj dalej

Virtualization w Linuxie (KVM, Xen): Czy wirtualizacja to tylko iluzja bezpieczeństwa?
Virtualization w Linuxie (KVM, Xen): Czy wirtualizacja to tylko iluzja bezpieczeństwa?

🧠 Virtualization w Linuxie (KVM, Xen): Czy wirtualizacja to tylko iluzja bezpieczeństwa? 🔓 Luki w hiperwizorach – fakty, których nie Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.