Docker yeniden başlatma ve sağlık durumunu gösteren konteyner panosu

Çökmüş bir konteyner kolayca fark edilir. İçindeki uygulama kilitlenmiş durumda çalışmaya devam eden konteyner ise bir Cuma akşamı masrafa neden olur. Docker’ın yerleşik yeniden başlatma politikası artı bir sağlık kontrolü ilk savunma hattıdır ve etrafındaki araçlar (otomatik iyileştirme izleme sistemleri, görüntü güncelleyiciler, panolar) homelab’ın ziyaretler arasında çalışır halde kalmasının nedenidir. Docker konteyner yeniden başlatma politikaları için en iyi uygulamalar, bu kombinasyonu sıkıcı hale getirenlerdir, bu da tam olarak heeftir.

Kurulumu kapsayan sekiz araç seçtik: politika nasıl bildirilir, askıda kalan konteyner nasıl tespit edilir, tarayıcıdan her şey nasıl görülür ve gece yarısı sürprizler olmadan görüntüler nasıl güncel tutulur.

Konteyner-yeniden başlatma aracında ne aranmalı

İster Docker ile paketlenmiş olsun, ister ayrı olarak eklenmişse, yararlı bir araç şunlara sahip:

Aşağıdaki sekiz araç temiz bir şekilde istiflenmiştir. Yığın tarafından zaten sahip olmadığınız olanları seçin.

Hızlı karşılaştırma

Uygulama İçin en iyi Dağıtım şekli Maliyet
Docker Compose Politika bildirimi CLI + YAML Ücretsiz
Willfarrell Autoheal Sağlıksız konteynerleri yeniden başlatma Sidecar konteyneri Ücretsiz, open-source
Watchtower Görüntüleri otomatik güncelleme Sidecar konteyneri Ücretsiz, open-source
Portainer Yeniden başlatma kontrolleri olan web panosu Web UI konteyneri Ücretsiz CE, ücretli İşletme
Dockge Compose-öncelikli web kullanıcı arayüzü Web UI konteyneri Ücretsiz, open-source
Diun Güncelleme bildirimleri, otomatik çekme yok Sidecar konteyneri Ücretsiz, open-source
Uptime Kuma Konteyner kaybolduğunda uyarı Web UI konteyneri Ücretsiz, open-source
Ouroboros Alt otomatik güncelleyici Sidecar konteyneri Ücretsiz, open-source

1. Docker Compose, politika bildirimi için en iyi

Docker Compose politikanın gerçekten yaşadığı yerdir. docker-compose.yml dosyasında restart: unless-stopped artı bir healthcheck bloğu, Docker’a bir hizmeti çalışır halde tutmak için gereken iki parçayı verir. Günümüz Docker CLI’sında Compose hızlı ve stabil, ve Compose dosyalarıyla dolu bir depo, bu listedeki tüm diğer araçların okuduğu tek doğruluk kaynağıdır.

Nerede yetersiz kalır: Compose sağlıksız duruma yanıt vermez. Sağlıksız olarak işaretlenmiş bir konteyner, ayrı bir izleme sistemi onu yeniden başlatmadıkça çalışmaya devam eder. Bu Autoheal’ın doldurduğu boşluğun.

Fiyatlandırma:

Platformlar: Windows, Linux, macOS.

İndir: docs.docker.com/compose

Sonuç: Taban katman. Bu listenin geri kalanındaki her yeniden başlatma politikası hikayesi altında bir Compose dosyası varsayar.

2. Willfarrell Autoheal, sağlıksız konteynerleri yeniden başlatma için en iyi

Autoheal Docker’ın kendi Sağlık API’sini araştıran ve eşik süresi boyunca sağlıksız olarak işaretlenen herhangi bir konteyneri yeniden başlatan tek konteyneri yan karşı koyan bir araçtır. Basit bir etiket ile konteyner başına seçmeli katılım. Kurulum tek bir Compose hizmetidir.

Nerede yetersiz kalır: sadece Docker’ın kendi healthcheck sinyaline yanıt verir. Konteyner uygulamanın healthcheck’i yanlış olduğu için hiçbir zaman sağlıksız olarak işaretlenmemişse, Autoheal yardım edemez.

Fiyatlandırma:

Platformlar: Herhangi bir Docker ana bilgisayarı (Linux, Windows, macOS).

İndir: github.com/willfarrell/docker-autoheal

Sonuç: Eksik parça. Her homelab ve küçük üretim yığını bunu Compose’un yanında çalıştırmalı.

3. Watchtower, görüntüleri otomatik güncelleme için en iyi

Watchtower dağıttığınız etiketi izler ve upstream görüntüsü hareket ettiğinde, yeni görüntüyü çeker ve konteyneri yeniden başlatır. Etikete göre yapılandırılabilir, böylece bir veritabanı sabitlenmiş kalabilirken statik bir site otomatik olarak güncellenir. Bildirimler Slack, Discord veya webhook’a ulaşır.

Nerede yetersiz kalır: otomatik güncellemeler çift taraflı bir kılıçtır. Önemli olan konteynerleri sabitleyin (veritabanları, şema geçişlerine sahip her şey); yaprak konteynerlerin otomatik güncellenmesine izin verin.

Fiyatlandırma:

Platformlar: Herhangi bir Docker ana bilgisayarı.

İndir: containrrr.dev/watchtower

Sonuç: Varsayılan otomatik güncelleyici; “tümünü güncelle” modu yerine etiketlerle kullanın.

4. Portainer, yeniden başlatma kontrolleriyle web panosu için en iyi

Portainer çoğu kendi kendini barındıran kişinin sonunda bulunduğu Docker web kullanıcı arayüzüdür. Her konteyneri listeler, sağlık ve yeniden başlatma durumunu gösterir, her biri için Yeniden Başlat düğmesini ortaya çıkarır ve Compose yığın yönetimini destekler. Community Edition ücretsiz ve bir homelab’ı kapsar; Business rol tabanlı erişim ve çok kümelemeyi açar.

Nerede yetersiz kalır: tek konakçılı yığın için çok fazla kullanıcı arayüzüdür. Kurulumunuz bir makine ise, Dockge daha hafiftir.

Fiyatlandırma:

Platformlar: Herhangi bir Docker ana bilgisayarı.

İndir: portainer.io

Sonuç: Çeşitli ana bilgisayarları çalıştıran veya konuklar için gerçek bir pano isteyen herkes için en iyi seçim.

5. Dockge, Compose-öncelikli tarama için en iyi

Dockge Compose dosyalarını birinci sınıf olarak ele alır. YAML’yi yerinde düzenler, kaydettiğinizde yığını yeniden başlatır ve konteyner durumunu satır içinde gösterir. Portainer tek konakçılı kurulum için ağır görünüyorsa, Dockge bununla değiştirilecek olandır.

Nerede yetersiz kalır: tek düğüm odaklandırması; çok konakçılı yönetim yok. Daha yeni proje, ancak mevcut sürümde kararlı.

Fiyatlandırma:

Platformlar: Herhangi bir Docker ana bilgisayarı.

İndir: github.com/louislam/dockge

Sonuç: Büyüyen Compose deposu içeren tek makineli kurulum için daha hafif pano.

6. Diun, otomatik çekme olmadan güncelleme bildirimleri için en iyi

Diun (Docker Image Update Notifier) görüntü etiketlerini izler ve yeni birinin geldiğinde çekmeden veya yeniden başlatmadan bildirir. El ile güncellemek istediğiniz konteynerler (veritabanları, el ile adım gerektiren her şey) için Diun size güncellemeyi ne zaman planlamanız gerektiğini söyler.

Nerede yetersiz kalır: tasarım gereği sadece bildirim. Hedef “sadece gece her şeyi güncelle” ise, Watchtower’ı kullanın.

Fiyatlandırma:

Platformlar: Herhangi bir Docker ana bilgisayarı.

İndir: github.com/crazy-max/diun

Sonuç: Watchtower’a tamamlayıcı. Güvenli şeyler otomatik olarak güncelleyin, geri kalanı bildirin.

7. Uptime Kuma, konteyner kaybolduğunda uyarı için en iyi

Uptime Kuma kendi barındırılan bir durum sayfası ve uyarı sistemidir. Her konteynerin açık portuna veya Docker soketine işaret edin ve zamanlamaya göre ping gönderin. Bir konteyner kaybolduğunda, Kuma Discord, Telegram, e-posta veya webhook aracılığıyla uyarır ve durum sayfası kesinti penceresini gösterir.

Nerede yetersiz kalır: izler, yeniden başlatmaz. Kapalı döngü için Autoheal ile eşleştirin.

Fiyatlandırma:

Platformlar: Herhangi bir Docker ana bilgisayarı.

İndir: uptime.kuma.pet

Sonuç: Autoheal’ın üzerindeki uyarı katmanı. Birlikte “aşağı idi, şimdi yukarıda” hikayesini kaplarlar.

8. Ouroboros, alternatif otomatik güncelleyici olarak en iyi

Ouroboros Watchtower’a daha eski bir alternatiftir. Aynı işi yapar (upstream sondaj, çekme, yeniden başlatma) biraz farklı bir yapılandırma yüzeyi ile. Her iki proje de iyi bakılır; hangi dokümanların en temiz okunduğunu seçin.

Nerede yetersiz kalır: topluluk Watchtower’dan daha küçüktür, bu nedenle sorun giderme daha az forum konusu bulur.

Fiyatlandırma:

Platformlar: Herhangi bir Docker ana bilgisayarı.

İndir: github.com/pyouroboros/ouroboros

Sonuç: İyi bir ikinci seçenek otomatik güncelleyici. Çoğu yığın ilk olarak Watchtower’da iner.

Doğru olanı seçme

Sık Sorulan Sorular

Docker yeniden başlatma politikaları arasındaki fark nedir?

no hiçbir zaman yeniden başlatmaz, on-failure sıfır olmayan çıkışta yeniden başlatır, always el ile olanlar dahil olmak üzere herhangi bir durdurmada yeniden başlatır ve unless-stopped başarısızlıkta ve yeniden başlatmada yeniden başlatır ancak el ile durmada değil. unless-stopped çoğu kendi kendini barındıran yığının varsayılanıdır.

Docker askıda kalan ancak çökmemiş bir konteyneri yeniden başlatır mı?

Hayır. Docker sadece konteynerin çıkışına yanıt verir. Askıda kalmış bir konteyneri yeniden başlatmak için bir sağlık kontrolü ekleyin ve onu Autoheal veya benzer bir izleme sistemi ile eşleştirin.

Watchtower üretim için güvenli midir?

Değişmez veriler içeren yaprak hizmetleri için evet. Veritabanları ve şema geçişlerine sahip her şey için görüntüyü sabitleyin ve el ile güncelleyin. Watchtower etiket tabanlı seçmeli katılımı destekler.

Ev sunucusu için Portainer mi yoksa Dockge mi?

Çeşitli ana bilgisayarlar veya rol tabanlı erişime ihtiyaç duyduğunuzda Portainer. Compose dosyasının doğruluk kaynağı olduğu tek ana bilgisayar için Dockge.

Portainer’ım varsa ayrı bir uyarı sistemine ihtiyacım var mı?

Portainer konteyner durumunu gösterir ancak sizi uyarmaz. Uptime Kuma veya başka bir bildirim aracı, bir konteyner kaybolduğunda iletiyi gönderir.

En küçük yararlı yığın nedir?

restart: unless-stopped ve bir sağlık kontrolü olan Compose, artı Autoheal. Bu kombinasyon “konteyner gece boyunca askıda kaldı” senaryosunun yüzde 80’ini kapsar.