Manajemen sumber daya kontainer Docker di desktop

Satu kontainer yang tidak berfungsi dengan baik dapat menghentikan homelab. Satu transcode Jellyfin, satu pengindeksan ulang Immich, satu kueri database Home Assistant, dan tiba-tiba Pi-hole kehilangan DNS dan Nextcloud mengalami timeout. Solusinya bukan lebih banyak RAM. Solusinya adalah batasan. Setiap kontainer mendapat batas memori, alokasi CPU, dan bobot I/O blok, dan tetangga yang berisik tetap berada di jalurnya. Itulah cerita yang baru saja diceritakan oleh penulis XDA setelah akhirnya menetapkan mem_limit, cpus:, dan blkio-weight pada setiap kontainer di stacknya. Keandalan datang dari batasan, bukan dari perangkat keras.

Selama beberapa minggu terakhir, kami telah menjalankan aplikasi terbaik untuk manajemen sumber daya kontainer Docker di tiga platform desktop yang penting bagi self-hoster: Windows (melalui WSL atau Docker Desktop), macOS, dan Linux. Kami melihat antarmuka web, antarmuka terminal, dan sistem operasi self-host penuh, dan kami mengevaluasinya berdasarkan satu pertanyaan. Seberapa cepat Anda dapat meletakkan cpus: 2.0 dan mem_limit: 1g pada setiap kontainer di satu tempat? Ketujuh aplikasi ini layak diinstal.

Apa yang harus diperhatikan dalam manajer sumber daya Docker

Tidak setiap GUI Docker dirancang untuk membatasi sumber daya. Beberapa hal membedakan yang layak diinstal dari yang hanya menampilkan daftar kontainer Anda dengan ikon yang indah.

Perbandingan cepat

Aplikasi Terbaik untuk Platform Lisensi Harga
Portainer Kontrol GUI penuh atas stack dan batasan Windows, macOS, Linux Gratis CE, berbayar BE Gratis / dari sekitar $155 per node/tahun
Dockge Pengeditan berbasis compose dengan statistik langsung Windows, macOS, Linux Open source Gratis
Docker Desktop Batas per kontainer asli di Mac dan Windows Windows, macOS, Linux Gratis pribadi, berbayar teams Gratis / dari $9 per pengguna/bulan
CasaOS Homelab OS pemula dengan app store Linux (Debian/Ubuntu/Pi) Open source Gratis
Runtipi Homelab app store yang dikurasi dengan default yang baik Linux Open source Gratis
Yacht Antarmuka web ringan untuk Docker single-host Windows, macOS, Linux Open source Gratis
Lazydocker Antarmuka terminal untuk triase cepat dan pemeriksaan CPU/memori Windows, macOS, Linux Open source Gratis

Aplikasi

1. Portainer, terbaik untuk kontrol GUI penuh di setiap kontainer

Portainer adalah alat yang kebanyakan self-hoster gunakan setelah stack mereka tumbuh melampaui empat atau lima kontainer. Community Edition gratis, berjalan sebagai satu kontainer Docker, dan memberi Anda konsol berbasis browser untuk setiap kontainer, image, jaringan, volume, dan stack di satu atau beberapa host Docker. Untuk pembatasan sumber daya khususnya, tampilan edit kontainer mengekspos batas CPU (sebagai hitungan vCPU), reservasi memori, dan batas memori, dan akan menerapkannya secara panas melalui docker update tanpa membuat ulang kontainer. Stack (file compose) dapat diedit sebaris, dan Portainer menggunakannya kembali saat Anda menyimpan.

Tampilan multi-host adalah yang mendorongnya melampaui pilihan yang lebih ringan. Jika Anda menjalankan Docker di NAS dan mini PC, satu instalasi Portainer dapat mengelola keduanya, dan dashboard sumber daya menunjukkan host mana yang mengalami tekanan sebelum Anda membatasi apa pun.

Di mana ia kekurangan: Community Edition gratis mengurangi beberapa fitur ke tingkat Business Edition berbayar, termasuk RBAC per pengguna di atas tiga pengguna dan kontrak dukungan. Ini juga tidak mencakup bobot I/O blok dari antarmuka, jadi blkio-weight masih hidup di file compose Anda.

Harga: Community Edition gratis untuk node tak terbatas. Business Edition dimulai dari sekitar $155 per node per tahun dengan diskon volume dan lisensi gratis 5 node untuk penggunaan rumah.

Platform: Berjalan di mana pun Docker berjalan. Di desktop, itu adalah Windows (WSL atau Docker Desktop), macOS (Docker Desktop atau Colima), dan Linux.

Unduh: Situs penerbit · GitHub

Garis bawah: Jika Anda menginginkan satu dashboard untuk melihat dan membatasi setiap kontainer di setiap mesin yang Anda miliki, Portainer adalah jawaban default.

2. Dockge, manajer berbasis compose gratis terbaik

Dockge mengambil pendekatan yang berlawanan dengan Portainer. Alih-alih mengelola kontainer sebagai objek kelas satu, ia menganggap file compose sebagai sumber kebenaran. Anda mengedit docker-compose.yaml di browser, tekan deploy, dan Dockge menghentikan, membuat ulang, dan memulai ulang stack. Itulah alur kerja yang tepat yang Anda inginkan ketika menambahkan mem_limit: 512m dan cpus: '0.5' ke setiap layanan di bawah deploy.resources dan ingin melihat perubahan tercermin segera.

Antarmukanya sengaja sparse: daftar stack di sebelah kiri, editor compose dan terminal di sebelah kanan, pembacaan CPU dan memori langsung di bagian atas. Ditulis oleh pengembang yang sama dengan Uptime Kuma, jadi polannya nyata, dan instalasinya adalah satu kontainer Docker.

Di mana ia kekurangan: Hanya satu host. Jika Anda perlu mengelola lebih dari satu mesin Docker dari satu layar, Dockge tidak akan melakukannya. Ini juga mengasumsikan Anda nyaman menulis file compose, jadi ini bukan pilihan bagi seseorang yang tidak pernah melihat YAML sebelumnya.

Harga: Gratis, open source di bawah lisensi MIT.

Platform: Berjalan di mana pun Docker berjalan. Bekerja dengan baik di server Linux yang diakses dari browser Windows, macOS, atau Linux.

Unduh: GitHub

Garis bawah: Pilihan gratis terbaik jika kontainer Anda sudah tinggal di file compose dan Anda ingin membatasinya di sana tanpa meninggalkan browser.

3. Docker Desktop, pilihan built-in terbaik di Windows dan macOS

Docker Desktop dilengkapi dengan kontrol sumber daya yang kebanyakan pengguna tidak pernah buka. Di Windows dan macOS, pane Resources membatasi seluruh Docker VM (memori, CPU, swap, ukuran image disk), yang merupakan jaring pengaman Anda untuk mencegah Docker memakan laptop Anda. Di atas itu, batas kontainer individual masih bekerja seperti biasa melalui CLI, file compose, dan dialog edit kontainer UI desktop pada versi terbaru.

Alasan itu ada di daftar ini adalah karena sudah diinstal di sebagian besar mesin desktop. Jika Anda belum melalui Pengaturan Docker Desktop dan menetapkan batas memori dan CPU keras pada engine, lakukan itu terlebih dahulu. Setiap batas kontainer di bawah mengandalkan batas luar itu.

Di mana ia kekurangan: Batas lebar engine adalah bintang pertunjukan; pengeditan per-kontainer di UI desktop fungsional namun sparse. Di Linux aplikasi desktop bersifat opsional, kebanyakan orang menggunakan daemon secara langsung. Penggunaan bisnis di atas 250 karyawan atau pendapatan $10M memerlukan langganan berbayar.

Harga: Gratis untuk penggunaan pribadi, pendidikan, bisnis kecil, dan open source. Pro adalah $9 per pengguna per bulan, Team $15, Business $24.

Platform: Windows, macOS, Linux.

Unduh: Docker.com

Garis bawah: Tetapkan batas lebar engine terlebih dahulu, kemudian lapisi alat lain di atas untuk batas per-kontainer. Gratis untuk sebagian besar pengguna rumah.

4. CasaOS, pilihan homelab pemula terbaik

CasaOS adalah lapisan sistem operasi self-host penuh yang duduk di atas Debian, Ubuntu, Raspberry Pi OS, atau serupa. Instal dengan skrip satu baris dan Anda mendapatkan layar beranda seperti ponsel, app store dengan installer satu klik (Jellyfin, Immich, Pi-hole, Home Assistant, dan sekitar 150 lainnya), dan tampilan kontainer yang menunjukkan CPU dan memori per app secara real-time. Untuk setiap kontainer yang diinstal, Anda dapat membuka pengaturan dan menetapkan batas memori, alokasi CPU, dan pemetaan port dan volume tanpa menyentuh file compose.

Ini adalah alat yang akan kami letakkan di depan teman yang membeli mini PC untuk menjalankan Plex dan Home Assistant dan tidak pernah membuka terminal. Batasannya adalah satu slider jauhnya, dan UI membuat jelas kontainer mana yang tidak terbatas.

Di mana ia kekurangan: Single-host, hanya Linux, dan berpendapat. App store mengkurasi serangkaian image tertentu, jadi kontainer custom atau di luar katalog bekerja melalui importer compose tetapi tidak mendapat manfaat dari UX satu klik. Kecepatan pengembangan telah melambat dibandingkan beberapa tahun yang lalu, meskipun proyek masih aktif dipertahankan.

Harga: Gratis, open source di bawah lisensi Apache 2.0.

Platform: Hanya Linux (Debian, Ubuntu, Raspberry Pi OS, Fedora, Arch). Akses dari browser desktop apa pun.

Unduh: Situs penerbit · GitHub

Garis bawah: Cara termudah untuk menjalankan homelab kecil dengan batas per-app yang wajar jika mesinnya adalah box Linux khusus.

5. Runtipi, alternatif homelab terbaik yang dikurasi untuk CasaOS

Runtipi mencakup area yang sama dengan CasaOS (app store, installer satu klik, pengaturan per-app) tetapi terasa lebih modern dan bergerak lebih cepat. App store sekarang mencakup beberapa ratus aplikasi terkontainerisasi, semuanya dikemas dengan default yang baik, variabel lingkungan ditampilkan di UI, dan pengaturan sumber daya terbuka per app. Batas yang Anda tetapkan di konfigurasi app diterjemahkan ke batas Docker standar saat deployment.

Kami lebih suka Runtipi ke CasaOS ketika pengguna lebih senang membaca dokumen, karena pengaturan membuka lebih banyak knob. Ini juga memiliki dukungan yang lebih baik untuk arsitektur berganda dan alur pembaruan yang lebih bersih.

Di mana ia kekurangan: Juga single-host dan hanya Linux. Aplikasi yang tidak ada di toko masih memerlukan file compose, diimpor melalui definisi aplikasi kustom. Komunitas lebih kecil daripada Portainer atau CasaOS, jadi integrasi yang tidak jelas memerlukan penggalian lebih banyak.

Harga: Gratis, open source.

Platform: Linux (Debian, Ubuntu, dan turunan). Akses browser dari desktop apa pun.

Unduh: Situs penerbit · GitHub

Garis bawah: Pilihan jika CasaOS terasa terlalu sederhana dan Portainer terasa terlalu mentah.

6. Yacht, antarmuka web ringan terbaik

Yacht adalah antarmuka web yang lebih kecil dan lebih cepat di ruang yang sama dengan Portainer, ditujukan untuk pengguna yang menginginkan daftar kontainer yang bersih, template satu klik, dan pane pengaturan yang mencakup batas CPU dan memori tanpa area permukaan tambahan dari manajemen stack atau orkestrasi multi-host. Template hidup di file JSON dan dapat dibagikan komunitas, yang memudahkan untuk men-deploy image dengan batas yang baik ditanamkan.

Untuk single Docker host di mana Anda sebagian besar peduli tentang memulai, menghentikan, membatasi, dan memperbarui kontainer, Yacht lebih cepat dipelajari daripada Portainer dan membuat seluruh alur tetap dalam dua atau tiga layar.

Di mana ia kekurangan: Pengembangan jauh lebih lambat daripada Portainer atau Dockge, dan proyek telah lama dalam beta. Multi-host tidak ada di roadmap. Beberapa fitur Docker yang lebih baru mendarat lebih lambat di sini daripada di alat yang lebih besar.

Harga: Gratis, open source.

Platform: Berjalan di mana pun Docker berjalan. Akses browser dari desktop apa pun.

Unduh: GitHub

Garis bawah: Antarmuka web yang rapi untuk single Docker host ketika Portainer terasa berlebihan.

7. Lazydocker, antarmuka terminal terbaik untuk triase cepat

Lazydocker bukan manajer, itu adalah monitor dengan tangan. Luncurkan di terminal dan Anda mendapatkan tampilan yang didorong keyboard dari setiap kontainer dengan grafik CPU, memori, I/O blok, dan jaringan langsung, ditambah pane stats, log, dan jalan pintas shell. Ketika satu kontainer melonjak, lazydocker menunjukkan mana dalam hitungan detik, dan Anda dapat restart, stop, atau membuka shell tanpa meninggalkan pane.

Untuk benar-benar menetapkan batas, Anda turun ke shell (e membuka kontainer di $EDITOR atau docker exec) dan menggunakan docker update --cpus 2 --memory 1g <name> atau mengedit file compose. Ini adalah alat yang Anda simpan di split tmux di sebelah UI web apa pun yang merupakan main Anda.

Di mana ia kekurangan: Tidak ada editing UI untuk compose atau batasan run, Anda harus mengetik CLI. Hanya Docker, tidak ada Kubernetes.

Harga: Gratis, open source di bawah lisensi MIT.

Platform: Windows (melalui WSL atau PowerShell), macOS, Linux. Instal melalui Homebrew, Scoop, Nix, atau biner Go.

Unduh: GitHub

Garis bawah: Cara tercepat untuk melihat kontainer mana yang tidak berfungsi dengan baik sekarang, dan menjalankan docker update yang membatasinya.

Cara memilih yang tepat

Sebagian besar self-hoster berakhir dengan dua. Antarmuka web untuk menetapkan batas dan membaca state, ditambah Lazydocker di terminal cadangan untuk saat kontainer mulai berperilaku buruk.

FAQ

Aplikasi gratis terbaik apa untuk mengelola kontainer Docker di desktop?

Portainer Community Edition adalah pilihan gratis terkuat karena mencakup pengeditan kontainer, stack, multi-host, dan statistik langsung dalam satu UI browser tanpa paywall. Untuk alur kerja berbasis compose, Dockge adalah pilihan gratis yang lebih baik.

Bagaimana cara menetapkan batas CPU dan memori pada kontainer Docker?

Dalam file compose, tambahkan deploy.resources.limits.cpus: '2.0' dan deploy.resources.limits.memory: 1G di bawah layanan, atau gunakan top-level yang lebih tua cpus: 2.0 dan mem_limit: 1g. Pada kontainer yang berjalan, docker update --cpus 2 --memory 1g <name> menerapkan perubahan tanpa restart. Portainer, Dockge, CasaOS, Runtipi, dan Yacht semua mengekspos pengaturan ini di UI.

Bisakah Docker Desktop membatasi kontainer individual?

Pane Resources Docker Desktop membatasi seluruh Docker VM di Windows dan macOS, bukan kontainer individual. Batas per-kontainer masih datang dari file compose, bendera docker run, atau manajer seperti Portainer yang berjalan di atas engine yang sama.

Apakah Portainer atau Dockge lebih baik untuk homelab?

Portainer jika Anda memiliki lebih dari satu host Docker atau Anda menginginkan manajer kontainer penuh. Dockge jika semua layanan Anda sudah tinggal di file compose pada satu host dan Anda menginginkan loop editing tercepat. Banyak homelabber memasang keduanya dan menggunakan masing-masing untuk yang terbaik dilakukannya.

Apa perbedaan antara CasaOS dan Runtipi?

Keduanya adalah instalasi satu baris homelab OS layer dengan app store yang dikurasi dan pengaturan per-app. CasaOS lebih ramah untuk pemula dengan kecepatan perubahan yang lebih lambat; Runtipi membuka lebih banyak konfigurasi dan mengirimkan aplikasi baru lebih cepat. Coba CasaOS terlebih dahulu jika kesederhanaan penting, Runtipi jika Anda berencana memutar hal-hal.

Apakah alat-alat ini bekerja di atas WSL di Windows?

Ya. Setiap tujuh berjalan dalam kontainer di engine Docker di dalam WSL 2, dan Anda mengakses UI web dari browser Windows di localhost. Lazydocker juga berjalan langsung di dalam shell WSL.