WSL2 + Docker Neden Bu Kadar Popüler?
Windows 11 üzerinde yazılım geliştirenlerin önemli bir kısmı, Linux araçlarını yerel hızda çalıştırmak ve aynı anda Windows uygulamalarından da vazgeçmemek istiyor. WSL2 (Windows Subsystem for Linux 2), Linux çekirdeğini sanal makine benzeri bir mimaride çalıştırırken, kullanıcıya terminal ve dosya erişimi açısından çok pratik bir deneyim sunuyor. İşin içine Docker da girince; mikroservisler, test ortamları, veritabanları ve CI/CD’ye yakın bir yerel geliştirme düzeni kurmak oldukça kolaylaşıyor.
Bu rehberde, Windows 11’de WSL2’yi etkinleştirip bir Linux dağıtımı kuracak, Docker’ı WSL2 tabanlı şekilde çalıştıracak ve performans/uyumluluk için birkaç kritik ayarı yapacağız. Anlatım sade; ancak adımlar güncel ve geliştirici kullanımına uygun olacak.
1) Ön Koşullar ve Kontroller
Başlamadan önce sisteminizde sanallaştırmanın açık olduğundan emin olun. Görev Yöneticisi > Performans sekmesinde Sanallaştırma: Etkin görmelisiniz. Değilse BIOS/UEFI üzerinden Intel VT-x veya AMD-V özelliğini açmanız gerekir.
Windows 11’in güncel olması da önemli. Bazı WSL2 ve ağ bileşenleri güncellemelerle iyileşiyor. Ayarlar > Windows Update bölümünden güncelleme kontrolü yapın.
2) WSL2 Kurulumu ve Varsayılan Sürümü Ayarlama
Windows Terminal veya PowerShell’i Yönetici olarak açın ve aşağıdaki komutu çalıştırın:
wsl --install
Bu komut çoğu sistemde gerekli bileşenleri kurar ve varsayılan olarak bir dağıtım (genellikle Ubuntu) önerir. Kurulumdan sonra yeniden başlatmanız istenebilir. Ardından WSL sürümünü 2 olarak sabitlemek için:
wsl --set-default-version 2
Kurulu dağıtımları görmek için:
wsl -l -v
Eğer dağıtımınız WSL 1 görünüyorsa, örnek olarak Ubuntu’yu WSL2’ye çevirebilirsiniz:
wsl --set-version Ubuntu 2
3) Ubuntu İçinde Temel Güncelleme ve Kullanışlı Paketler
Ubuntu terminalini açın ve paketleri güncelleyin:
sudo apt update && sudo apt upgrade -y
Geliştirme süreçlerinde sık kullanılan araçlar için:
sudo apt install -y build-essential git curl ca-certificates
4) Docker’ı WSL2 Üzerinde Çalıştırma (Docker Desktop ile)
Windows tarafında en sorunsuz yöntem, Docker Desktop kullanmaktır. Docker Desktop’ı kurduktan sonra Ayarlar (Settings) içinde Use the WSL 2 based engine seçeneğini etkinleştirin. Ardından Resources > WSL Integration bölümünde Ubuntu dağıtımınızı seçip entegrasyonu açın.
Bu aşamadan sonra Ubuntu terminalinde Docker komutlarını çalıştırabilmelisiniz. Kontrol için:
docker version
docker run --rm hello-world
Komutlar çalışıyor ama izin hatası alıyorsanız, genellikle Docker Desktop entegrasyonu eksik veya dağıtım seçimi kapalıdır. Ayarlara geri dönüp WSL Integration’ı doğrulayın.
5) Performans İçin Kritik İpucu: Dosyaları Nerede Tutmalı?
WSL2 + Docker kullanımında en sık yaşanan performans farkı, proje dosyalarının konumundan kaynaklanır. Eğer kaynak kodunuz Windows dosya sisteminde (ör. C:\) duruyor ve siz WSL içinden bu klasöre /mnt/c üzerinden erişiyorsanız, yoğun dosya okuma/yazma yapan projelerde yavaşlık hissedebilirsiniz.
Daha iyi performans için projelerinizi WSL dosya sisteminde tutun. Örneğin:
mkdir -p ~/projeler
Bu klasör altında çalışıp editör olarak VS Code’un Remote - WSL eklentisini kullanırsanız hem Windows arayüzüyle düzenleme yapar hem de Linux tarafında hızlı I/O avantajını korursunuz.
6) Docker Compose ile Örnek Bir Geliştirme Ortamı
Hızlı bir test ortamı için bir klasör oluşturup içine docker-compose.yml ekleyebilirsiniz. Örneğin PostgreSQL başlatmak, çoğu projede büyük kolaylık sağlar. Dosyanızın mantığı basit: bir veritabanı servisi, port yönlendirme ve kalıcı veri dizini. Compose çalıştırmak için genelde şu komut yeterlidir:
docker compose up -d
Sonrasında konteynerleri kontrol edin:
docker ps
İşiniz bitince ortamı kaldırmak için:
docker compose down
7) Sık Karşılaşılan Sorunlar ve Hızlı Çözümler
WSL dağıtımı açılmıyor veya güncellenmiyor: PowerShell’de wsl --update komutunu deneyin ve Windows Update’i kontrol edin.
Docker komutları bulunamıyor: Docker Desktop’ın açık olduğundan ve WSL Integration’ın ilgili dağıtım için etkin olduğundan emin olun.
Port çakışması: 5432, 3306 gibi yaygın portlar başka servisler tarafından kullanılıyor olabilir. Compose dosyasında portları değiştirin veya çakışan servisi kapatın.
Sonuç
Windows 11’de WSL2 ile Docker kullanmak, tek bilgisayarda hem Windows uygulamalarını hem de Linux tabanlı geliştirme araçlarını verimli şekilde bir araya getirir. Doğru entegrasyon yapıldığında, konteyner tabanlı projeler daha taşınabilir olur; test ve geliştirme ortamları birkaç komutla ayağa kalkar. En büyük kazanım ise şudur: “Makinemde çalışıyor” cümlesini ekibin geri kalanından daha az duyarsınız.