
Kontainer yang mengalami crash mudah diketahui. Kontainer yang terus berjalan sementara aplikasi di dalamnya deadlock adalah yang menghabiskan malam Jumat. Kebijakan restart bawaan Docker ditambah pemeriksaan kesehatan adalah garis pertahanan pertama, dan alat di sekitarnya (watchdog auto-heal, pembaruan gambar, dashboard) adalah alasan mengapa homelab tetap aktif antar kunjungan. Aplikasi terbaik untuk kebijakan restart kontainer Docker adalah yang membuat kombinasi itu membosankan, yang merupakan tujuan sebenarnya.
Kami memilih delapan alat yang bersama-sama mencakup pengaturan: cara mendeklarasikan kebijakan, cara mendeteksi kontainer yang tergantung, cara melihat semuanya dari browser, dan cara menjaga gambar tetap terbaru tanpa kejutan di tengah malam.
Apa yang dicari dalam alat restart kontainer
Baik itu digabungkan dengan Docker atau dipasang terpisah, alat yang berguna memiliki:
- Deklarasi yang jelas tentang arti restart: pada kegagalan, pada exit non-zero, selalu, unless-stopped. Membingungkan kebijakan itu telah menyebabkan lebih banyak outage daripada kontainer yang dilindunginya.
- Pemeriksaan kesehatan yang dapat ditindaklanjuti alat, bukan hanya dilaporkan. Pelaporan adalah monitor. Restart adalah perbaikan.
- Tampilan dashboard tunggal atau CLI yang menjawab “kontainer mana yang berperilaku baik hari ini”.
- Penanganan pembaruan yang opt-in per kontainer dan memungkinkan Anda untuk menahan yang tidak boleh bergerak.
- Nol kejutan saat reboot host. File Compose dan kebijakan restart harus compose ke status yang sama setelah siklus daya seperti sebelumnya.
Delapan alat di bawah stack dengan bersih. Pilih yang belum dimiliki tumpukan Anda.
Perbandingan cepat
| Aplikasi | Terbaik untuk | Bentuk Deploy | Biaya |
|---|---|---|---|
| Docker Compose | Mendeklarasikan kebijakan | CLI + YAML | Gratis |
| Willfarrell Autoheal | Restart kontainer yang tidak sehat | Sidecar container | Gratis, open-source |
| Watchtower | Auto-update gambar | Sidecar container | Gratis, open-source |
| Portainer | Web dashboard dengan kontrol restart | Web UI container | Gratis CE, bisnis berbayar |
| Dockge | Web UI yang didahulukan Compose | Web UI container | Gratis, open-source |
| Diun | Notifikasi update, tanpa auto-pull | Sidecar container | Gratis, open-source |
| Uptime Kuma | Alerting saat kontainer hilang | Web UI container | Gratis, open-source |
| Ouroboros | Alt auto-updater | Sidecar container | Gratis, open-source |
1. Docker Compose, terbaik untuk mendeklarasikan kebijakan
Docker Compose adalah tempat kebijakan benar-benar hidup. restart: unless-stopped dalam file docker-compose.yml, ditambah blok healthcheck, memberikan Docker dua bagian yang dibutuhkan untuk menjaga layanan tetap aktif. Compose dalam Docker CLI saat ini cepat dan stabil, dan repo penuh file Compose adalah satu-satunya sumber kebenaran yang dibaca setiap alat lain dalam daftar ini.
Di mana ini tidak cukup: Compose tidak bertindak pada status yang tidak sehat. Kontainer yang ditandai tidak sehat akan terus berjalan kecuali watchdog terpisah memulainya ulang. Itulah gap yang diisi Autoheal.
Harga:
- Gratis dengan Docker Desktop dan Docker Engine.
Platform: Windows, Linux, macOS.
Download: docs.docker.com/compose
Garis bawah: Lapisan dasar. Setiap cerita kebijakan restart di sisa daftar ini mengasumsikan file Compose di bawahnya.
2. Willfarrell Autoheal, terbaik untuk restart kontainer yang tidak sehat
Autoheal adalah sidecar satu kontainer yang menanyai API kesehatan Docker sendiri dan memulai ulang kontainer apa pun yang telah ditandai tidak sehat lebih lama dari ambang batas. Opt-in per kontainer dengan label sederhana. Pengaturan adalah layanan Compose tunggal.
Di mana ini tidak cukup: itu hanya bereaksi terhadap sinyal healthcheck Docker sendiri. Jika kontainer tidak pernah ditandai tidak sehat karena healthcheck aplikasi salah, Autoheal tidak dapat membantu.
Harga:
- Gratis, open-source.
Platform: Host Docker apa pun (Linux, Windows, macOS).
Download: github.com/willfarrell/docker-autoheal
Garis bawah: Bagian yang hilang. Setiap homelab dan tumpukan produksi kecil harus menjalankan ini di sebelah Compose.
3. Watchtower, terbaik untuk auto-update gambar
Watchtower memantau tag yang Anda deploy dan, ketika gambar upstream telah bergerak, menarik gambar baru dan memulai ulang kontainer. Dapat dikonfigurasi per label, jadi database dapat tetap disematkan sementara situs statis auto-update. Notifikasi mendarat di Slack, Discord, atau webhook.
Di mana ini tidak cukup: pembaruan otomatis adalah pedang bermata dua. Sematkan kontainer yang penting (database, apa pun dengan migrasi skema); biarkan daun auto-update.
Harga:
- Gratis, open-source.
Platform: Host Docker apa pun.
Download: containrrr.dev/watchtower
Garis bawah: Auto-updater default; gunakan dengan label, bukan mode “perbarui semuanya”.
4. Portainer, terbaik untuk web dashboard dengan kontrol restart
Portainer adalah UI web Docker yang akhirnya digunakan self-hoster. Ini mencantumkan setiap kontainer, menunjukkan status kesehatan dan restart, mengekspos tombol Restart untuk masing-masing, dan mendukung manajemen tumpukan Compose. Community Edition gratis dan mencakup homelab; Business membuka akses berbasis peran dan multi-cluster.
Di mana ini tidak cukup: itu banyak UI untuk tumpukan host tunggal. Jika pengaturan Anda adalah satu mesin, Dockge lebih ringan.
Harga:
- Gratis (Community Edition).
- Business adalah langganan berbayar untuk deployment yang lebih besar.
Platform: Host Docker apa pun.
Download: portainer.io
Garis bawah: Pilihan terbaik untuk siapa pun yang menjalankan beberapa host atau menginginkan dashboard nyata untuk tamu.
5. Dockge, terbaik untuk browsing yang dipandu Compose
Dockge memperlakukan file Compose sebagai kelas satu. Itu mengedit YAML di tempat, memulai ulang tumpukan saat Anda menyimpan, dan menunjukkan status kontainer inline. Jika Portainer terasa berat untuk pengaturan host tunggal, Dockge adalah yang harus diganti.
Di mana ini tidak cukup: fokus node tunggal; tidak ada manajemen multi-host. Proyek lebih baru, tetapi stabil di rilis saat ini.
Harga:
- Gratis, open-source.
Platform: Host Docker apa pun.
Download: github.com/louislam/dockge
Garis bawah: Dashboard yang lebih ringan untuk pengaturan satu mesin dengan repo Compose yang berkembang.
6. Diun, terbaik untuk notifikasi update tanpa auto-pull
Diun (Docker Image Update Notifier) memantau tag gambar dan memberitahu saat yang baru mendarat, tanpa menarik atau memulai ulang. Untuk kontainer yang ingin Anda perbarui dengan tangan (database, apa pun dengan langkah manual), Diun memberitahu Anda kapan merencanakan update.
Di mana ini tidak cukup: notifikasi saja menurut desain. Jika tujuannya adalah “cukup perbarui semuanya semalam”, gunakan Watchtower.
Harga:
- Gratis, open-source.
Platform: Host Docker apa pun.
Download: github.com/crazy-max/diun
Garis bawah: Pelengkap Watchtower. Auto-update hal yang aman, beritahu yang lainnya.
7. Uptime Kuma, terbaik untuk alerting saat kontainer hilang
Uptime Kuma adalah halaman status dan alerter yang di-host sendiri. Arahkan ke port yang terbuka di setiap kontainer atau ke soket Docker, dan itu ping sesuai jadwal. Ketika kontainer turun, Kuma alert melalui Discord, Telegram, email, atau webhook, dan halaman status menunjukkan jendela outage.
Di mana ini tidak cukup: itu memantau, itu tidak restart. Pasangkan dengan Autoheal untuk loop tertutup.
Harga:
- Gratis, open-source.
Platform: Host Docker apa pun.
Download: uptime.kuma.pet
Garis bawah: Lapisan alert di atas Autoheal. Bersama-sama mereka mencakup cerita “sedang turun, sudah naik”.
8. Ouroboros, terbaik sebagai auto-updater alternatif
Ouroboros adalah alternatif yang lebih lama untuk Watchtower. Itu melakukan pekerjaan yang sama (poll upstream, pull, restart) dengan permukaan konfigurasi yang sedikit berbeda. Kedua proyek dipertahankan dengan baik; pilih mana pun doknya dibaca paling bersih.
Di mana ini tidak cukup: komunitas lebih kecil dari Watchtower, jadi pemecahan masalah mengalami lebih sedikit utas forum.
Harga:
- Gratis, open-source.
Platform: Host Docker apa pun.
Download: github.com/pyouroboros/ouroboros
Garis bawah: Auto-updater pilihan kedua yang baik. Sebagian besar tumpukan mendarat di Watchtower terlebih dahulu.
Cara memilih yang tepat
- Mulai dengan Docker Compose dan
restart: unless-stoppedpada setiap layanan. - Tambahkan Autoheal untuk restart yang didorong healthcheck.
- Tambahkan Watchtower untuk auto-update pada kontainer daun, dan Diun untuk notifikasi pada yang Anda tolak untuk auto-update.
- Tambahkan Uptime Kuma untuk alerting, jadi outage nyata mendapat perhatian Anda.
- Pilih Portainer untuk dashboard multi-host, atau Dockge untuk editor Compose host-tunggal.
- Ouroboros adalah alternatif untuk Watchtower; gunakan jika gaya konfigurasinya sesuai untuk Anda.
FAQ
Apa perbedaan antara kebijakan restart Docker?
no tidak pernah restart, on-failure restart pada exit non-zero, always restart pada henti apa pun termasuk manual, dan unless-stopped restart pada kegagalan dan reboot tetapi bukan henti manual. unless-stopped adalah default untuk sebagian besar tumpukan self-hosted.
Apakah Docker memulai ulang kontainer yang tergantung tetapi tidak crash?
Tidak. Docker hanya bereaksi pada exit kontainer. Untuk memulai ulang kontainer yang tergantung, tambahkan healthcheck dan pasangkan dengan Autoheal atau watchdog serupa.
Apakah Watchtower aman untuk produksi?
Untuk layanan daun dengan data immutable, ya. Untuk database dan apa pun dengan migrasi skema, sematkan gambar dan update dengan tangan. Watchtower mendukung opt-in berbasis label.
Portainer atau Dockge untuk server rumah?
Portainer untuk multiple host atau saat Anda membutuhkan akses berbasis peran. Dockge untuk single host di mana file Compose adalah sumber kebenaran.
Apakah saya memerlukan alerter terpisah jika saya memiliki Portainer?
Portainer menampilkan status kontainer tetapi tidak memberitahu Anda. Uptime Kuma atau alat pemberitahuan lainnya mengirim pesan saat kontainer turun.
Apa tumpukan yang berguna terkecil?
Compose dengan restart: unless-stopped dan healthcheck, ditambah Autoheal. Kombinasi itu mencakup 80 persen skenario “kontainer tergantung semalam”.