Watchtower Docker auto-update

Artikel XDA tentang menyematkan gambar Docker ke latest adalah pelajaran yang dipelajari setiap operator homelab dengan cara yang sulit: latest bergerak tanpa bertanya, dan satu pull yang buruk dapat merusak tumpukan yang tidak dapat Anda kembalikan. Alat di bawah ini memberi Anda jalan tengah: notifikasi tentang gambar baru, pin ke tag nyata, dan perbarui sesuai jadwal yang Anda kontrol. Tujuh pilihan untuk Docker, Podman, Compose, Swarm, dan Kubernetes.

Apa yang harus dicari dalam pembaruan otomatis kontainer

Pilihan yang tepat bergantung pada skala, bukan preferensi. Pertimbangkan:

Perbandingan cepat

App Terbaik untuk Runtime Gratis Notifikasi Auto-apply
Watchtower Host homelab solo Docker Ya Ya Ya
Diun Hanya notifikasi, tanpa auto-apply Docker, Podman, Kubernetes Ya Ya Tidak
Ouroboros Alternatif Watchtower lama Docker Ya Ya Ya
Podman auto-update Systemd Podman native Podman Ya Tidak Ya
Shepherd Layanan Docker Swarm Docker Swarm Ya Tidak Ya
Renovate Compose atau Kubernetes yang dikelola GitOps Any (via git) Ya (open source) Ya Via PRs
Portainer Pembaruan manual dengan GUI Docker, Swarm, Kubernetes Free CE Ya Ya

1. Watchtower, pilihan default terbaik untuk host Docker tunggal

Watchtower adalah kontainer Docker yang memantau kontainer Docker Anda yang lain. Ketika tag gambar baru didorong ke registri, Watchtower menariknya, membuat ulang kontainer dengan konfigurasi yang sama, dan membersihkan gambar lama. Tambahkan label ke kontainer untuk memilihnya masuk atau keluar.

Ini adalah pemula default untuk host Docker rumah karena membutuhkan blok Docker Compose dua baris untuk diatur dan melakukan persis satu hal dengan baik.

Di mana ia kurang: Watchtower mengasumsikan latest atau tag yang dapat berubah. Jika Anda menyematkan ke 1.2.3, itu tidak akan bergulir ke 1.2.4 sendiri. Tidak ada rollback. Proyek hulu telah melambat; fork (berbasis WOL, yang dipatch keamanan) adalah hal biasa.

Harga: Gratis dan open source (Apache 2.0).

Platform: Host apa pun yang menjalankan Docker (Windows, macOS, Linux, ARM).

Unduh: containrrr.dev/watchtower · GitHub

Kesimpulannya: Pilihan pertama yang tepat untuk host Docker pribadi, dengan peringatan bahwa Anda tidak boleh mengarahkannya ke layanan production yang tidak dapat Anda tolak untuk istirahat.

2. Diun, pilihan notifikasi terbaik

Diun memantau tag gambar di registri Anda dan mengirim notifikasi ketika digest baru tersedia. Itu tidak pernah menarik, tidak pernah membuat ulang, tidak pernah menyentuh kontainer Anda. Anda mendapatkan ping Discord atau notifikasi Gotify, dan Anda memperbarui sesuai ketentuan Anda.

Alasan untuk memilihnya adalah kontrol. Auto-apply Watchtower bergerak lebih cepat dari yang diinginkan kebanyakan orang; Diun membuat manusia tetap dalam lingkaran.

Di mana ia kurang: Anda masih harus menjalankan docker compose pull && docker compose up -d secara manual.

Harga: Gratis dan open source (MIT).

Platform: Host apa pun dengan Docker, Podman, atau cluster Kubernetes.

Unduh: crazymax.dev/diun · GitHub

Kesimpulannya: Pilihan yang tepat ketika Anda ingin tahu tentang pembaruan tetapi tidak menerapkannya secara otomatis.

3. Ouroboros, alternatif Watchtower lebih tua terbaik

Ouroboros adalah alternatif berbasis Python untuk Watchtower yang mendahului Watchtower dan melakukan pekerjaan dasar yang sama: tarik, buat ulang, pangkas. Beberapa homelab-ber tetap di Ouroboros karena konfigurasinya lebih dekat dengan apa yang mereka tulis bertahun-tahun lalu.

Pengembangan lambat tapi stabil. Pengguna baru harus mulai dengan Watchtower atau Diun.

Di mana ia kurang: Ritme rilis lebih lambat dari alternatif. Set fitur pada dasarnya beku.

Harga: Gratis dan open source (MIT).

Platform: Host apa pun yang menjalankan Docker.

Unduh: GitHub

Kesimpulannya: Baik jika Anda sudah menjalankannya. Sebaliknya Watchtower atau Diun.

4. Podman auto-update, pilihan Podman native terbaik

Podman dilengkapi dengan podman auto-update, subperintah yang membaca label pada setiap kontainer dan menarik gambar segar pada timer systemd. Tidak ada kontainer sidecar, tidak ada alat pihak ketiga. Ini terintegrasi dengan Quadlet (generator Podman untuk systemd) untuk definisi layanan deklaratif.

Alasan untuk memilihnya adalah bahwa jika Anda menjalankan Podman rootless di RHEL, Fedora, atau Debian modern, jalur pembaruan otomatis sudah ada di OS.

Di mana ia kurang: Podman saja. Tidak ada notifikasi built-in.

Harga: Gratis dan open source (Apache 2.0).

Platform: Linux (Podman).

Unduh: Dokumentasi di docs.podman.io

Kesimpulannya: Pilihan native pada host Podman. Tidak ada alat baru yang diperlukan.

5. Shepherd, terbaik untuk Docker Swarm

Shepherd memantau layanan Docker Swarm (bukan kontainer standalone) dan menggulung layanan ketika tag gambar mereka memiliki digest baru. Ini menghormati strategi pembaruan bergulir Swarm, yang berarti itu bekerja dengan baik dengan pemeriksaan kesehatan dan paralelisme pembaruan.

Sangat sedikit orang yang masih menjalankan Swarm dalam skala besar, tetapi bagi mereka yang melakukannya, Shepherd adalah pembaruan otomatis yang dibangun untuk model Swarm.

Di mana ia kurang: Swarm saja. Tidak ada gunanya di luar cluster Swarm.

Harga: Gratis dan open source (MIT).

Platform: Docker Swarm (host Linux).

Unduh: GitHub

Kesimpulannya: Pilihan yang tepat di dalam Docker Swarm.

6. Renovate, pendekatan GitOps terbaik

Renovate adalah bot yang membuka pull request di repo git Anda ketika tag gambar memiliki pembaruan. Ini bekerja pada file Compose, manifes Kubernetes, chart Helm, Dockerfiles, GitHub Actions, dan puluhan target lainnya. PR mencakup catatan rilis, tautan changelog, dan pemeriksaan bahwa tag baru benar-benar ada.

Alasan untuk memilihnya adalah pembaruan menjadi perubahan kode. Anda meninjau mereka, menggabungkannya, dan CI menerapkan pembaruan. Rollback adalah git revert. Ini adalah pola yang paling banyak tim production gunakan.

Di mana ia kurang: Memerlukan pipeline deployment berbasis git. Bukan cocok untuk homelab yang tidak menggunakan CI.

Harga: Gratis self-hosted (Apache 2.0). Layanan terkelola (Mend) juga gratis untuk open source dan tim kecil.

Platform: GitHub, GitLab, Bitbucket, git self-hosted.

Unduh: renovatebot.com · GitHub

Kesimpulannya: Pilihan yang tepat ketika infrastruktur Anda ditentukan dalam git.

7. Portainer, pembaruan manual berbasis GUI terbaik

Portainer adalah dashboard manajemen Docker/Swarm/Kubernetes. Ini menunjukkan setiap kontainer dan setiap gambar, menandai ketika gambar baru tersedia, dan memungkinkan Anda membuat ulang kontainer dengan pull segar dengan dua klik. Community Edition gratis; Business Edition menambahkan RBAC, pemindaian gambar, dan banyak lagi.

Alasan untuk memilihnya adalah bahwa beberapa pembaruan adalah keputusan sekali yang ingin Anda buat dari UI daripada file konfigurasi.

Di mana ia kurang: Tidak sepenuhnya otomatis. Anda adalah pembaruan otomatis; Portainer hanya memberi Anda tombol.

Harga: Community Edition gratis. Business Edition berbayar.

Platform: Docker, Swarm, Kubernetes (self-hosted).

Unduh: portainer.io · GitHub

Kesimpulannya: Pilihan untuk alur kerja klik-ke-update dan armada campuran.

Bagaimana memilih

FAQ

Apakah aman menjalankan Watchtower terhadap production?
Tidak tanpa kebijakan tag yang hati-hati. Arahkan ke :latest dan dapat merusak tumpukan Anda pada kesalahan hulu apa pun. Arahkan ke tag yang disematkan semver dan tambahkan rollback berbasis health-check. Lebih baik: gunakan Renovate untuk apa pun yang tidak dapat Anda tolak untuk istirahat.

Bagaimana cara menyematkan ke versi nyata alih-alih latest?
Ganti image: nginx dengan image: nginx:1.27.2 dalam file Compose Anda. Renovate membuka PR ketika 1.27.3 dikirim. Watchtower dan Diun keduanya melihat digest baru bahkan untuk tag yang disematkan jika tag itu sendiri diperbarui hulu.

Apakah alat-alat ini bekerja dengan registri pribadi?
Ya. Watchtower, Diun, dan Renovate semuanya mendukung kredensial docker untuk registri pribadi (ECR, GCR, Harbor, self-hosted).

Bisakah saya mengembalikan pembaruan yang buruk?
Watchtower dan Ouroboros tidak membuat tag gambar sebelumnya; Anda memerlukan ID gambar sebelumnya atau skema tagging Anda sendiri. UI Portainer membuat rollback lebih mudah. Rollback Renovate adalah git revert.

Seberapa sering kontainer harus auto-update?
Untuk homelab, sekali sehari pada jam tenang baik-baik saja. Untuk production, lebih suka hanya notifikasi atau berbasis PR (Renovate) sehingga pembaruan dikirim melalui review dan CI, bukan daemon latar belakang.