Seorang penulis XDA menjalankan seluruh homelab mereka di kontainer WSL selama seminggu dan menemukan bahwa “tidak banyak” yang rusak. Itu adalah bacaan yang jujur: WSL 2 sudah dewasa, Docker Desktop menjadi lebih berat, dan banyak pekerjaan homelab sekarang berjalan dengan baik di dalam distribusi Linux di Windows tanpa beban VM Docker Desktop. Ini adalah aplikasi terbaik untuk migrasi kontainer WSL dari Docker di desktop, alat-alat yang memungkinkan mesin Windows menjalankan kontainer tanpa membayar lisensi per tempat atau mem-boot VM kedua untuk menjalankan daemon.
Kami menguji tujuh alat di dalam WSL 2 di Windows 11 24H2 dengan laptop AMD Ryzen dan workstation Nvidia. Setiap pilihan dipasang ke dalam gambar Ubuntu 24.04 atau Debian 12 WSL standar, bertahan dari reboot Windows, dan baik menggantikan Docker CLI sepenuhnya atau jatuh di belakangnya. Perbedaan muncul di sekitar passthrough GPU, dukungan systemd, dan bagaimana setiap alat menangani seam sistem file Windows-Linux yang membuat sebagian besar migrasi gagal.
Apa yang perlu diperhatikan dalam stack kontainer WSL
- WSL 2 dengan systemd menyala. Alat kontainer modern menginginkan pid 1 menjadi systemd.
- Rootless di mana pun mungkin. Tidak ada daemon yang berjalan sebagai root di dalam distro.
- Akses GPU. Nvidia CDI atau jalur CUDA-on-WSL sehingga pelatihan dan inferensi bekerja.
- Volume persisten di sisi Linux. Bind mount tetap di sistem file ext4, bukan
/mnt/c. - Kompatibilitas Docker-CLI. Perintah
dockerdandocker composeyang sudah ada terus bekerja selama migrasi. - Autostart pada login Windows. Task Scheduler atau entri autostart WSL menjaga layanan tetap aktif tanpa
wsl -dmanual.
Perbandingan cepat
| Aplikasi | Terbaik untuk | Platform | Paket gratis | Tier berbayar | Rating |
|---|---|---|---|---|---|
| WSL 2 | Lapisan distro yang semuanya duduk di atasnya | Windows 10, 11 | Sepenuhnya gratis | Tidak ada | 4.8 |
| Podman | CLI docker drop-in tanpa daemon |
Ubuntu, Debian, Fedora di WSL | Sepenuhnya gratis | Podman Desktop, gratis | 4.7 |
| Rancher Desktop | Stack yang dikelola dan kompatibel dengan Docker | Windows | Sepenuhnya gratis | Tidak ada | 4.6 |
| Distrobox | Beberapa distro Linux berdampingan | Distro WSL apa pun | Sepenuhnya gratis | Tidak ada | 4.7 |
| systemd-nspawn | Kontainer OS ringan yang tertanam di systemd | WSL dengan systemd | Sepenuhnya gratis | Tidak ada | 4.5 |
| nerdctl | CLI native containerd ketika pengganti Docker sudah cukup | Ubuntu, Debian, Fedora di WSL | Sepenuhnya gratis | Tidak ada | 4.7 |
| Lima | Linux VM dari file config untuk portabilitas | Windows via WSL, macOS, Linux | Sepenuhnya gratis | Tidak ada | 4.7 |
Aplikasi-aplikasi
1. WSL 2 untuk kontainer — Lapisan distro terbaik
WSL 2 adalah dasar yang mengubah Windows menjadi host kontainer yang layak. Dengan flag systemd menyala di /etc/wsl.conf, instalasi Ubuntu atau Debian boot ke init nyata, yang membuka kunci Podman, nerdctl, dan semuanya di daftar ini. Batas memori sisi Windows di .wslconfig mencegah kontainer liar mengonsumsi host, dan mode networking di rilis terbaru menghentikan dansa port localhost.
Di mana ini kurang: Cross-filesystem I/O lambat. Simpan data kontainer di sisi ext4 Linux, bukan di /mnt/c/Users/..., atau compose yang membutuhkan 2 detik di Docker Desktop akan membutuhkan 40 di sini.
Harga:
- Gratis: Sepenuhnya gratis.
- Berbayar: Tidak ada.
Platform: Windows 10 21H2 dan lebih baru, Windows 11.
Unduh: learn.microsoft.com/windows/wsl · github.com/microsoft/WSL
Kesimpulan: Hidupkan systemd terlebih dahulu, lalu pilih alat kontainer. Semuanya di bawah mengasumsikan langkah ini.
2. Podman untuk WSL — CLI Docker daemonless terbaik
Podman mengirimkan CLI kompatibel docker, podman-compose untuk file compose, dan berjalan rootless. Di dalam gambar Ubuntu WSL, dnf atau apt install podman dan alias docker=podman mencakup sebagian besar migrasi dalam satu sore. Primitif pod Podman memetakan ke Kubernetes lebih baik daripada compose Docker, yang membuat langkah akhir ke orkestrator nyata kurang ditulis ulang.
Di mana ini kurang: Beberapa file compose menggunakan sintaks spesifik Docker yang ditangani podman-compose secara tidak sempurna. Podman Compose v2 memperbaiki sebagian besar; kasus edge tetap ada.
Harga:
- Gratis: Sepenuhnya gratis.
- Berbayar: Tidak ada. Podman Desktop juga gratis.
Platform: Ubuntu, Debian, Fedora, dan distro lain di dalam WSL.
Unduh: podman.io · github.com/containers/podman
Kesimpulan: Pilihan yang tepat untuk siapa pun yang meninggalkan Docker Desktop karena lisensi atau jejak digitalnya.
3. Rancher Desktop di WSL — Stack yang dikelola dan kompatibel Docker terbaik
Rancher Desktop membungkus containerd dan Moby ke dalam penginstal Windows, menggunakan WSL di balik layar, dan memberikan UI untuk gambar dan Kubernetes. Ini juga mengekspos binari docker dan docker compose dengan mesin kontainer pilihan Anda. Itu membuat penggantian Docker Desktop paling lancar ketika sisa tim masih mengharapkan docker untuk bekerja saja.
Di mana ini kurang: Anggaran RAM lebih tinggi daripada Podman raw di dalam WSL karena Rancher Desktop menjalankan struktur utility VM sendiri di atas distro WSL.
Harga:
- Gratis: Sepenuhnya gratis.
- Berbayar: Tidak ada.
Platform: Windows 10, 11 (backend WSL 2).
Unduh: rancherdesktop.io · github.com/rancher-sandbox/rancher-desktop
Kesimpulan: Pilih Rancher Desktop ketika tim menginginkan penggantian Docker Desktop, bukan penulisan ulang alur kerja lengkap.
4. Distrobox di WSL — Multi-distro berdampingan terbaik
Distrobox membuat dan mengelola kontainer yang menyimpan distribusi lengkap dan terintegrasi dengan gambar WSL host, jadi proyek yang membutuhkan alat Fedora dan proyek yang membutuhkan Ubuntu 20.04 sama-sama hidup di mesin yang sama. Di bawah WSL, itu mengubah satu distro WSL menjadi peluncur untuk sekumpulan kecil lingkungan tujuan khusus, dan masing-masing memiliki alat kontainer sendiri, akses GPU, dan manajer paket.
Di mana ini kurang: Bukan pengganti Docker dengan sendirinya. Duduk di samping Podman atau nerdctl dan menangani masalah “Saya membutuhkan lingkungan build yang cocok”.
Harga:
- Gratis: Sepenuhnya gratis.
- Berbayar: Tidak ada.
Platform: Distro WSL apa pun dengan Podman atau Docker.
Unduh: distrobox.it · github.com/89luca89/distrobox
Kesimpulan: Menambahkan pola “banyak distro di satu kotak Windows” tanpa memutar gambar WSL terpisah.
5. systemd-nspawn di WSL — Kontainer OS ringan terbaik
systemd-nspawn adalah apa yang systemd sendiri kirimkan untuk kontainer level OS. Ini bukan pengganti Docker lengkap, tetapi ini adalah cara paling ringan untuk menjalankan sandbox distro di dalam WSL tanpa daemon lain. Beban kerja warisan yang mengharapkan init lengkap, cron, dan bus systemd berperilaku di dalam nspawn lebih baik daripada di dalam kontainer OCI yang dikupas.
Di mana ini kurang: Tidak ada cerita registri gambar. Anda membawa sistem file root Anda sendiri, biasanya debootstrap.
Harga:
- Gratis: Sepenuhnya gratis.
- Berbayar: Tidak ada.
Platform: Distro WSL yang memiliki systemd diaktifkan.
Unduh: freedesktop.org/wiki/Software/systemd · systemd/systemd di GitHub
Kesimpulan: Kontainer untuk beban kerja yang berpura-pura menjadi server Linux utuh.
6. nerdctl di WSL — CLI native containerd terbaik
nerdctl adalah CLI kompatibel Docker dari proyek containerd, dan cukup dekat dengan docker sehingga script tidak melihat swap. Di dalam WSL, itu berpasangan dengan baik dengan containerd yang dipasang langsung dari rilis containerd, tanpa Docker atau Podman dalam gambaran. Kombinasi itu adalah cara paling ramping untuk menjalankan kontainer OCI di Windows tanpa Docker Desktop VM.
Di mana ini kurang: Buildkit untuk build gambar membutuhkan satu langkah ekstra. Setelah dikonfigurasi, nerdctl build berperilaku.
Harga:
- Gratis: Sepenuhnya gratis.
- Berbayar: Tidak ada.
Platform: Ubuntu, Debian, Fedora di WSL.
Unduh: github.com/containerd/nerdctl · containerd.io
Kesimpulan: Alat yang tepat jika Anda tahu beban kerja Anda berjalan di containerd pula dan tidak membutuhkan extras Docker.
7. Lima di WSL — VM-as-config terbaik untuk portabilitas
Lima mendeskripsikan Linux VM dalam file YAML dan menjalankannya dengan cara yang sama di macOS, Linux, dan Windows melalui WSL. Itu membuat alat yang membuat “host kontainer” dapat direproduksi bahkan ketika laptop pengembang beralih antar platform. Tim dapat berbagi konfigurasi Lima dan semua orang mendapatkan pengaturan containerd atau Docker yang sama terlepas dari OS.
Di mana ini kurang: Lima di Windows masih bergantung pada WSL sebagai mesin VM, jadi batas memori dan networking WSL dasar berlaku.
Harga:
- Gratis: Sepenuhnya gratis.
- Berbayar: Tidak ada.
Platform: Windows (via WSL 2), macOS, Linux.
Unduh: lima-vm.io · github.com/lima-vm/lima
Kesimpulan: Gunakan Lima ketika file config penting lebih dari mesin kontainer spesifik.
Cara memilih yang tepat
- Jika Anda menginginkan migrasi paling tidak invasif: Rancher Desktop, pertahankan CLI
docker, tukar mesin di belakangnya. - Jika Anda menginginkan daemon tidak ada dan tidak ada pertanyaan lisensi: Podman di dalam WSL Ubuntu yang diaktifkan systemd.
- Jika Anda membutuhkan beberapa distro di satu kotak Windows: Distrobox di atas Podman.
- Jika beban kerja menginginkan OS lengkap dengan init: systemd-nspawn di dalam WSL.
- Jika tim menggunakan macOS, Linux, dan Windows: Lima dengan konfigurasi YAML bersama.
FAQ
Bisakah saya menjalankan file Docker Compose di dalam WSL tanpa Docker Desktop?
Ya. Pasang Docker Engine langsung di dalam distro WSL yang diaktifkan systemd, atau gunakan Podman dengan podman-compose, atau Rancher Desktop dengan mesin Moby. Ketiga menjalankan file docker-compose.yml tanpa Docker Desktop VM.
Apakah WSL 2 mendukung GPU Nvidia untuk kontainer?
Ya pada driver Nvidia yang didukung. Pasang toolkit CUDA-on-WSL di dalam distro, paparkan GPU dengan Nvidia Container Toolkit, dan kontainer melihatnya. Dukungan AMD di WSL terbatas pada build ROCm lebih baru dan kartu tertentu.
Haruskah saya menyimpan data kontainer di drive Windows atau sisi Linux?
Simpan di sisi ext4 Linux. Bind mount ke /mnt/c menyeberangi seam sistem file 9P dan memperlambat build dan database hingga merangkak. Gunakan akses sistem file Windows hanya untuk mengedit sumber.
Bagaimana cara membuat kontainer WSL autostart pada login Windows?
Dua jalur. Tambahkan boot.command di /etc/wsl.conf di dalam distro (WSL 2 dengan systemd menjalankannya), atau tambahkan entri Task Scheduler yang menjalankan wsl -d Ubuntu -u root -- systemctl start yourservice.service saat login.
Apakah WSL 2 cukup cepat untuk homelab yang dahulu berjalan di Docker Desktop?
Untuk sebagian besar beban kerja homelab ya, dan sering lebih cepat karena tidak ada VM utilitas ekstra di stack. Database dan I/O berat mendapat manfaat terbesar ketika data berada di sisi ext4; layanan ringan tidak melihat perbedaan sama sekali.