Watchtower Docker auto-update

Docker görüntülerini latest sabitlemekle ilgili XDA makalesi, her homelab operatörünün zor yoldan öğrendiği bir dersti: latest sormadan ilerler ve bir kötü pull, geri döndüremeyeceğiniz bir yığını bozabilir. Aşağıdaki araçlar size orta yol sunuyor: yeni görüntüler hakkında bildirim alın, gerçek etiketlere sabitleyin ve kontrol ettiğiniz bir programa göre güncelleyin. Docker, Podman, Compose, Swarm ve Kubernetes için yedi seçenek.

Konteyner otomatik-güncelleyicide ne aramalı

Doğru seçim tercihte değil, ölçekte bağlıdır. Dikkate alın:

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

Uygulama En iyi Runtime Ücretsiz Bildirimler Otomatik-uygula
Watchtower Solo homelab ana bilgisayarları Docker Evet Evet Evet
Diun Yalnızca bildir, otomatik-uygula yok Docker, Podman, Kubernetes Evet Evet Hayır
Ouroboros Eski Watchtower alternatifi Docker Evet Evet Evet
Podman auto-update Native Podman systemd Podman Evet Hayır Evet
Shepherd Docker Swarm hizmetleri Docker Swarm Evet Hayır Evet
Renovate GitOps tarafından yönetilen Compose veya Kubernetes Herhangi biri (git aracılığıyla) Evet (açık kaynak) Evet PR’lar aracılığıyla
Portainer GUI ile manuel güncellemeler Docker, Swarm, Kubernetes Ücretsiz CE Evet Evet

1. Watchtower, tek Docker ana bilgisayar için en iyi varsayılan

Watchtower diğer Docker konteynerlerinizi izleyen bir Docker konteynerdir. Yeni bir görüntü etiketi kayıt defterine itildiğinde, Watchtower onu çeker, aynı yapılandırmayla konteyneri yeniden oluşturur ve eski görüntüyü temizler. Bir konteyneri opt-in veya opt-out yapmak için bir etiket ekleyin.

Kurulumu sadece iki satırlık Docker Compose bloğu gerektirdiği ve tam olarak bir şeyi iyi yaptığı için bir ev Docker ana bilgisayarı için varsayılan başlangıçtır.

Eksik kaldığı yer: Watchtower latest veya değiştirilebilir bir etiketi varsayar. 1.2.3 üzerine sabitlerseniz, kendi başına 1.2.4‘e taşınmaz. Rollback yok. Upstream projesi yavaşladı; fork’lar (WOL tabanlı, güvenlik yamalı) yaygındır.

Fiyat: Ücretsiz ve açık kaynak (Apache 2.0).

Platformlar: Docker çalıştıran herhangi bir ana bilgisayar (Windows, macOS, Linux, ARM).

İndir: containrrr.dev/watchtower · GitHub

Sonuç: Kişisel bir Docker ana bilgisayar için doğru ilk seçim, bununla birlikte kırılamayacağınız production hizmetlerine işaret etmemelisiniz.

2. Diun, en iyi yalnızca-bildir seçimi

Diun kayıt defterinizde görüntü etiketlerini izler ve yeni bir digest mevcut olduğunda bir bildirim gönderir. Asla çekmez, asla yeniden oluşturmaz, asla konteynerlerinize dokunmaz. Bir Discord ping veya Gotify bildirimi alırsınız ve kendi şartlarınız altında güncelleme yaparsınız.

Bunu seçmenin nedeni kontroldür. Watchtower’ın otomatik-uygulama çoğu kişinin istediğinden daha hızlı hareket eder; Diun insanları döngüde tutar.

Eksik kaldığı yer: Yine de docker compose pull && docker compose up -d‘yi el ile çalıştırmalısınız.

Fiyat: Ücretsiz ve açık kaynak (MIT).

Platformlar: Docker, Podman veya Kubernetes kümesi olan herhangi bir ana bilgisayar.

İndir: crazymax.dev/diun · GitHub

Sonuç: Güncellemeler hakkında bilmek istediğinizde ama otomatik olarak uygulanmasını istemediğinizde doğru seçim.

3. Ouroboros, en iyi eski Watchtower alternatifi

Ouroboros Watchtower’dan önce gelen ve aynı temel işi yapan Python tabanlı bir Watchtower alternatifidir: çek, yeniden oluştur, budama. Bazı homelab operatörleri Ouroboros’da kalır çünkü konfigürasyonu yıllar önce yazdıklarına daha yakındır.

Geliştirme yavaş ama istikrarlıdır. Yeni kullanıcılar Watchtower veya Diun ile başlamalıdır.

Eksik kaldığı yer: Alternatiflere göre daha yavaş sürüm temposu. Özellik seti temelde donmuş durumda.

Fiyat: Ücretsiz ve açık kaynak (MIT).

Platformlar: Docker çalıştıran herhangi bir ana bilgisayar.

İndir: GitHub

Sonuç: Zaten çalıştırıyorsanız iyidir. Aksi takdirde Watchtower veya Diun.

4. Podman auto-update, en iyi native Podman seçeneği

Podman podman auto-update ile gelir, her konteynerde etiket okuyan ve systemd zamanlayıcısında taze görüntüleri çeken bir alt komut. Hiçbir yan-konteynir, üçüncü parti aracı yok. Bildirimsel hizmet tanımları için Quadlet (systemd’nin Podman üreteci) ile entegre olur.

Bunu seçmenin nedeni, RHEL, Fedora veya modern Debian üzerinde Podman’ı kökü olmayan şekilde çalıştırıyorsanız, otomatik-güncelleme yolu zaten işletim sisteminde mevcuttur.

Eksik kaldığı yer: Yalnızca Podman. Yerleşik bildirim yok.

Fiyat: Ücretsiz ve açık kaynak (Apache 2.0).

Platformlar: Linux (Podman).

İndir: docs.podman.io adresinde belgeler

Sonuç: Podman ana bilgisayarlarında native seçim. Yeni araç gerekli değil.

5. Shepherd, Docker Swarm için en iyi

Shepherd Docker Swarm hizmetlerini (bağımsız konteynerler değil) izler ve görüntü etiketi yeni bir digest içerdiğinde hizmetleri sabitler. Swarm’ın rolling-update stratejisini saygı duyarak, bu sağlık kontrolü ve güncelleme paralelliği ile iyi çalışır.

Çok az kişi halen Swarm’ı ölçekte çalıştırır, ancak bunu yapanlar için Shepherd, Swarm modeli için yerleştirilmiş otomatik-güncelleyicidir.

Eksik kaldığı yer: Yalnızca Swarm. Swarm kümesi dışında kullanım yok.

Fiyat: Ücretsiz ve açık kaynak (MIT).

Platformlar: Docker Swarm (Linux ana bilgisayarları).

İndir: GitHub

Sonuç: Docker Swarm içinde doğru seçim.

6. Renovate, en iyi GitOps yaklaşımı

Renovate bir görüntü etiketi güncellemeye sahip olduğunda git deponuzda pull istekleri açan bir bottur. Compose dosyaları, Kubernetes manifesto’su, Helm grafikleri, Dockerfile’lar, GitHub Actions ve düzinelerce başka hedef üzerinde çalışır. PR, sürüm notlarını, changelog bağlantılarını ve yeni etiketi gerçekten var olduğunun bir kontrolünü içerir.

Bunu seçmenin nedeni, güncellemelerin kod değişiklikleri haline gelmesidir. Onları inceleyip birleştirirsiniz ve CI güncellemeyi uygular. Rollback bir git revert’tir. Bu, çoğu production ekibinin yerleştiği modeldir.

Eksik kaldığı yer: Git tabanlı dağıtım ardışık hattı gerektirir. CI’ı kullanmayan bir homelab için uygun değildir.

Fiyat: Ücretsiz kendi kendine barındırılan (Apache 2.0). Yönetilen hizmet (Mend) de açık kaynak ve küçük ekipler için ücretsizdir.

Platformlar: GitHub, GitLab, Bitbucket, kendi kendine barındırılan git.

İndir: renovatebot.com · GitHub

Sonuç: Altyapınız git’te tanımlandığında doğru seçim.

7. Portainer, en iyi GUI tabanlı manuel güncellemeler

Portainer bir Docker/Swarm/Kubernetes yönetimi panosu’dur. Her konteyneri ve her görüntüyü gösterir, yeni bir görüntü mevcut olduğunda işaretler ve iki tıklamada taze çekili konteyneri yeniden oluşturmanıza izin verir. Community Edition ücretsizdir; Business Edition RBAC, görüntü taraması ve daha fazlasını ekler.

Bunu seçmenin nedeni, bazı güncellemelerin yapılandırma dosyası yerine bir UI’den yapmak isteyeceğiniz tek seferlik kararlar olmasıdır.

Eksik kaldığı yer: Tamamen otomasyonlu değil. Siz otomatik-güncelleyicisiniz; Portainer sadece düğmeyi sağlar.

Fiyat: Ücretsiz Community Edition. Ücretli Business Edition.

Platformlar: Docker, Swarm, Kubernetes (kendi kendine barındırılan).

İndir: portainer.io · GitHub

Sonuç: İş akışlarını tıkla-güncelle ve karma filo’lar için seçim.

Nasıl seçilir

SSS

Production’a karşı Watchtower çalıştırmak güvenli midir?
Dikkatli tag ilkesi olmadan değil. :latest üzerine işaret edin ve herhangi bir upstream hatasında yığını kırabilir. Semver sabitlenmiş etiketler üzerine işaret edin ve sağlık kontrolü tabanlı rollback ekleyin. Daha iyi: kıramayacağınız herhangi bir şey için Renovate kullanın.

latest yerine gerçek bir sürüme nasıl sabitler?
Compose dosyanızda image: nginx öğesini image: nginx:1.27.2 ile değiştirin. Renovate 1.27.3 sevk olduğunda bir PR açar. Watchtower ve Diun, etiket kendisi upstream’da güncellense bile, sabitlenmiş etiketler için bile yeni digest’leri fark eder.

Bu araçlar özel kayıt defterleriyle çalışır mı?
Evet. Watchtower, Diun ve Renovate’in hepsi özel kayıt defterleri (ECR, GCR, Harbor, kendi kendine barındırılan) için docker kimlik bilgilerini destekler.

Kötü bir güncellemeyi geri alabilir miyim?
Watchtower ve Ouroboros önceki görüntüyü etiketli tutmaz; önceki görüntü kimliği veya kendi etiketleme şemanız gerekir. Portainer’ın UI rollback’i daha kolay hale getirir. Renovate rollback git revert‘dir.

Konteynerler ne sıklıkta otomatik-güncelleme yapmalıdır?
Bir homelab için, günde bir kez sessiz bir saatte iyidir. Üretim için, yalnızca bildirim veya PR tabanlı (Renovate) tercih edin, böylece güncellemeler inceleme ve CI aracılığıyla sevk edilir, arka plan işlemi değil.