WSL2 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
WSL2 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

11 Şubat 2026 Çarşamba

Windows 11’de WSL2 ile Docker’sız Dev Ortamı: Podman ile Rootless Container Kurulumu ve İpuçları

Windows 11’de “Docker kurmadan container” mümkün mü?

Windows 11 üzerinde container tabanlı bir geliştirme ortamı kurmak isteyenlerin ilk aklına gelen seçenek çoğunlukla Docker Desktop oluyor. Ancak lisanslama, kaynak tüketimi ve arka planda çalışan servisler nedeniyle daha hafif ve kontrol edilebilir bir alternatif arıyorsanız, WSL2 + Podman (rootless) ikilisi oldukça güçlü bir çözüm sunuyor. Bu yazıda, Docker Desktop kurmadan Podman ile Linux container’larını WSL2 içinde nasıl çalıştıracağınızı ve günlük geliştirmede işinizi kolaylaştıracak pratik ayarları adım adım anlatıyorum.

Ön gereksinimler

Kuruluma başlamadan önce aşağıdakiler hazır olmalı: Windows 11, etkinleştirilmiş WSL2, bir Linux dağıtımı (ör. Ubuntu 22.04/24.04) ve Windows Terminal. WSL2 kurulu değilse PowerShell’i yönetici olarak açıp wsl --install komutunu çalıştırabilir, ardından sistemi yeniden başlatabilirsiniz. Zaten WSL kuruluysa sürümü doğrulamak için wsl -l -v komutu yeterlidir; dağıtımınızın VERSION sütununda 2 yazmalıdır.

1) WSL2 içinde Podman kurulumu

Ubuntu kullanıyorsanız Podman kurulumu oldukça düz: Terminalde WSL dağıtımınıza girin ve paketleri güncelleyin: sudo apt update. Ardından Podman’ı kurun: sudo apt install -y podman. Bu noktada Podman, Docker gibi daemon’a bağımlı olmadığı için daha sade bir mimariyle gelir. Yani arka planda sürekli çalışan bir servis zorunlu değildir; komutu verdiğinizde çalışır, işiniz bittiğinde kapanır.

2) Rootless (yetkisiz) container mantığı

Podman’ın en sevilen taraflarından biri rootless çalışmayı birinci sınıf desteklemesidir. Rootless, container’ları sistemde root yetkisi olmadan, kendi kullanıcı hesabınızla çalıştırmanız demektir. Bu, hem güvenlik açısından hem de “makinemi bozar mı?” kaygısını azaltma açısından ciddi avantaj sağlar. Rootless modda bazı ağ özellikleri veya port bağlama detayları farklılık gösterebilir; birazdan bunları pratik şekilde ele alacağız.

3) Podman ile ilk container’ı çalıştırma

Kurulumdan sonra hızlı bir test yapın. Örneğin Alpine imajını çekip bir komut çalıştırabilirsiniz: podman run --rm alpine:latest echo "Merhaba Podman". Her şey doğruysa Podman imajı indirecek ve çıktıyı göreceksiniz. Ardından mevcut imajları listelemek için podman images, çalışan container’ları görmek için podman ps komutları kullanılabilir.

4) Port yönlendirme ve web uygulaması örneği

Bir web uygulamasını ayağa kaldırmak için Nginx iyi bir örnektir. Aşağıdaki komut Nginx’i 8080 portuna bağlar: podman run --rm -p 8080:80 docker.io/library/nginx:alpine. Sonrasında Windows tarafında tarayıcıdan http://localhost:8080 adresine gittiğinizde Nginx karşılama sayfasını görmelisiniz. WSL2 ağ mimarisi çoğu durumda bunu sorunsuz taşır; ancak şirket VPN’i, güvenlik yazılımları veya özel firewall kuralları bazen localhost erişimini etkileyebilir. Bu durumda ilk kontrol edilecek yer Windows güvenlik duvarı ve WSL ağ ayarlarıdır.

5) Docker CLI alışkanlığını bırakmadan: podman-docker

Eğer yıllardır “docker run”, “docker compose” refleksiyle çalışıyorsanız Podman’a geçişi yumuşatmak için podman-docker paketi işinize yarar. Ubuntu’da çoğu sürümde şu şekilde yüklenebilir: sudo apt install -y podman-docker. Bu paket, “docker” komutunu Podman’a yönlendiren bir uyumluluk katmanı sağlar. Böylece birçok script ve dokümantasyon neredeyse değişmeden çalışır. Yine de üretim kalitesinde akışlarda komutları Podman’a göre netleştirmenizi öneririm.

6) Compose benzeri kullanım: Podman Compose veya Quadlet

Çoklu servis kurulumlarında Docker Compose benzeri bir deneyim için iki seçenek öne çıkıyor: podman-compose ve systemd tabanlı Quadlet. Basit senaryolarda sudo apt install -y podman-compose ile başlayabilirsiniz. Mevcut docker-compose.yml dosyalarınızın önemli bir kısmı çalışır; ancak network isimleri, volume izinleri ve bazı sürüme özel direktiflerde küçük uyarlamalar gerekebilir. Daha “kalıcı servis” yaklaşımı istiyorsanız Quadlet ile container’ları systemd birimleri gibi yönetmek, WSL içinde bile daha düzenli bir yapı sağlayabilir.

7) Volume, dosya izinleri ve performans notları

WSL2’de performansın kritik noktası genellikle dosya sistemi seçimidir. Proje dosyalarınızı WSL Linux dosya sistemi içinde (ör. /home/kullanici/proje) tutmak, Windows dosya sistemi altındaki /mnt/c yollarına göre çoğu zaman daha hızlıdır. Rootless container’larda volume bağlarken izin sorunları yaşarsanız, bağladığınız dizinlerin sahipliğini ve izinlerini kontrol edin. Özellikle Node.js gibi çok dosyalı projelerde, kaynak kodu Linux tarafında tutup editor olarak VS Code’un WSL eklentisini kullanmak hem stabil hem hızlı bir deneyim verir.

Sonuç: Hafif, güvenli ve kontrol edilebilir bir container deneyimi

WSL2 üzerinde Podman ile rootless container çalıştırmak, Windows 11’de modern geliştirme akışları için oldukça güncel ve ileri seviye bir alternatif sunuyor. Docker Desktop’a bağımlı kalmadan, daha az servisle daha fazla kontrol elde ediyorsunuz. Üstelik Podman’ın daemon’sız yaklaşımı ve rootless modeli, güvenlik ve kaynak kullanımı açısından da avantajlı. Eğer hedefiniz “Windows üzerinde Linux container geliştirme” ise bu kurulum, günlük iş akışınıza hızlıca entegre olabilecek pratik bir temel sağlar.

3 Şubat 2026 Salı

Windows 11’de WSL2 ile Docker Desktop Kurulumu ve Performans Ayarları (Adım Adım Rehber)

WSL2 + Docker: Neden Bu Kurulum?

Windows 11 üzerinde Linux tabanlı geliştirme yapmak artık “ikinci bir bilgisayar” ihtiyacı olmadan oldukça konforlu. WSL2 (Windows Subsystem for Linux 2), gerçek bir Linux çekirdeğiyle çalıştığı için dosya sistemi, ağ ve container uyumluluğu açısından WSL1’e göre belirgin avantajlar sunuyor. Buna Docker Desktop eklendiğinde; Kubernetes denemeleri, mikroservis geliştirme, CI ortamına yakın bir test akışı ve Linux image’larıyla sorunsuz çalışma gibi artılar elde ediyorsunuz.

Bu yazıda, Windows 11’de WSL2 kurulumundan başlayarak Docker Desktop’ı WSL2 tabanlı şekilde yapılandırmayı, ardından da performansı etkileyen kritik ayarları adım adım ele alacağız. Hedefimiz; stabil, hızlı ve günlük kullanımda sorun çıkarmayan bir geliştirme ortamı kurmak.

1) Ön Koşullar ve Kontroller

Kuruluma başlamadan önce sisteminizin bazı gereksinimleri karşıladığından emin olun. Windows 11’in güncel bir sürümünü kullanmanız önerilir. Ayrıca BIOS/UEFI tarafında sanallaştırma açık olmalıdır. Intel tarafında genellikle VT-x, AMD tarafında SVM olarak geçer.

Windows üzerinde WSL durumunu kontrol etmek için PowerShell’i yönetici olarak açıp şu komutu kullanabilirsiniz: wsl --status. Eğer WSL kurulu değilse veya sürüm eskiyse birazdan bunu da kuracağız.

2) WSL2 Kurulumu ve Linux Dağıtımı Seçimi

Windows 11’de WSL kurulumu çoğu sistemde tek komutla yapılabiliyor. PowerShell (Yönetici) üzerinde şu komutu çalıştırın: wsl --install. Bu komut varsayılan olarak uygun bileşenleri yükler ve genellikle Ubuntu kurulumunu başlatır. İşlem bittiğinde yeniden başlatma isteyebilir.

Dağıtımı elle seçmek isterseniz: wsl --list --online ile mevcut dağıtımları listeleyebilir, ardından wsl --install -d Ubuntu gibi bir komutla belirli bir dağıtımı kurabilirsiniz. Geliştirme amaçlı en yaygın tercih Ubuntu’dur; paket ekosistemi geniş, dokümantasyonu güçlüdür.

Kurulumdan sonra WSL’nin varsayılan sürümünü WSL2 yapmak için şu komut işe yarar: wsl --set-default-version 2. Mevcut bir dağıtımı WSL2’ye geçirmek gerekirse: wsl --set-version Ubuntu 2.

3) Docker Desktop Kurulumu (WSL2 Backend ile)

Docker Desktop, Windows üzerinde Docker Engine’i çalıştırmanın en pratik yoludur. Resmî Docker Desktop kurulum dosyasını indirip kurulum adımlarını izleyin. Kurulum sırasında “WSL 2 based engine” seçeneğinin etkin olduğundan emin olun. Bu seçenek, Hyper-V tabanlı klasik yaklaşım yerine WSL2 altyapısını kullanarak daha akıcı bir deneyim sunar.

Kurulum sonrası Docker Desktop’ı açın ve Settings bölümünde WSL entegrasyonunu kontrol edin. Genellikle Resources > WSL Integration altında, kurduğunuz Linux dağıtımı için entegrasyonu etkinleştirmeniz gerekir. Örneğin Ubuntu için anahtarı açtığınızda, Docker komutlarını doğrudan WSL terminalinden kullanabilirsiniz.

4) WSL İçinde Docker Komutlarını Test Etme

Ubuntu terminalini açıp şu komutlarla test yapın: docker version ve docker ps. Eğer Docker Desktop çalışıyorsa sürüm bilgisi gelmeli ve çalışan container listesi (boş da olabilir) görüntülenmelidir. Ardından hızlı bir test için: docker run --rm hello-world komutunu çalıştırabilirsiniz. Bu image başarıyla indiriliyor ve çalışıyorsa kurulum tamamdır.

5) Performans İçin Kritik Ayarlar (Gerçek Hayat İpuçları)

Dosyaları doğru yerde tutun: En sık yapılan hata, proje dosyalarını Windows dosya sistemi üzerinde (ör. C:\Users\...) tutup WSL üzerinden işlemektir. Bu yaklaşım bazı senaryolarda yavaşlar. Daha iyi performans için projelerinizi WSL dosya sisteminde, örneğin /home/kullanici/proje altında konumlandırın. Editör olarak VS Code kullanıyorsanız “Remote - WSL” eklentisiyle WSL içindeki projeye sorunsuz bağlanabilirsiniz.

Kaynak limitlerini yönetin: WSL2, varsayılan olarak sistem kaynaklarını dinamik kullanır. Ancak büyük projelerde veya çok sayıda container çalıştırırken RAM/CPU kullanımını kontrol etmek isteyebilirsiniz. Windows kullanıcı dizininizde .wslconfig dosyası oluşturarak örneğin bellek ve işlemci sınırı koyabilirsiniz. Bu sayede sisteminizin tamamının WSL2 tarafından “yutulmasını” engellersiniz.

Docker Desktop kaynak ayarları: Docker Desktop içinde CPU/RAM limitlerini düzenlemek, özellikle laptop kullanıcılarında fan ve pil yönetimi açısından önemlidir. Ayrıca disk imajının bulunduğu sürücüde yeterli boş alan olduğundan emin olun. Container’lar ve image’lar zamanla şişebilir; kullanılmayanları temizlemek için düzenli aralıklarla docker system prune komutunu dikkatli şekilde kullanabilirsiniz.

6) Sık Karşılaşılan Sorunlar ve Çözümler

Docker komutu bulunamadı: WSL entegrasyonunu Docker Desktop ayarlarından etkinleştirdiğinizden emin olun. Ayrıca Docker Desktop’ın çalışır durumda olması gerekir.

WSL güncelleme ihtiyacı: Bazı durumlarda çekirdek güncellemesi gerekebilir. PowerShell’de wsl --update komutunu çalıştırarak WSL bileşenlerini güncelleyebilirsiniz.

Ağ/port erişimi: Container içinde çalışan servisleri Windows üzerinden görmek için port yönlendirmesinin doğru olduğundan emin olun (ör. -p 3000:3000). Güvenlik yazılımları veya kurumsal politikalar bazı portları kısıtlayabilir.

Sonuç

WSL2 ile Docker Desktop birleşimi, Windows 11 üzerinde Linux-native geliştirme deneyimini ciddi şekilde iyileştiriyor. Doğru dağıtımı seçip WSL entegrasyonunu etkinleştirdikten sonra, projelerinizi WSL dosya sistemi içinde tutarak ve kaynak limitlerini bilinçli ayarlayarak hem stabil hem de hızlı bir ortam kurabilirsiniz. Bu rehberdeki adımlar tamamlandığında; Node.js, Python, Go, .NET ve daha pek çok teknoloji için container tabanlı geliştirme akışına hazır olacaksınız.

31 Ocak 2026 Cumartesi

Windows 11’de WSL2 ile Docker Desktop Olmadan Docker Kurulumu ve Performans Ayarları

Docker Desktop’sız bir Docker deneyimi mümkün mü?

Windows 11 üzerinde Docker kullanmanın en popüler yolu Docker Desktop kurmak. Ancak bazı kullanıcılar lisans koşulları, sistem kaynak tüketimi veya arka planda çalışan servisler nedeniyle daha hafif bir alternatif arıyor. İyi haber şu: WSL2 (Windows Subsystem for Linux) ile Docker Engine’i doğrudan Linux dağıtımı içinde kurup, Windows’ta da komut satırından rahatça kullanabilirsiniz. Bu yazıda, güncel bir yöntemle Docker Desktop olmadan kurulum, entegrasyon ve performans ayarlarını adım adım anlatıyorum.

Ön koşullar

Başlamadan önce şunlara ihtiyacınız var: Windows 11 (güncel), yönetici yetkisi, WSL2 ve bir Linux dağıtımı (Ubuntu 22.04/24.04 önerilir). Terminal kullanmayı bilmek kurulum süresini kısaltır. Bu yöntem, Docker konteynerlerini Linux çekirdeği üzerinde çalıştırdığı için hem uyumluluk hem de hız açısından genelde iyi sonuç verir.

1) WSL2 ve Ubuntu kurulumu (kısa yol)

Windows Terminal’i yönetici olarak açıp aşağıdaki komutu çalıştırın. Bu komut WSL’i etkinleştirir ve varsayılan olarak Ubuntu’yu kurar:

Komut: wsl --install

Kurulum bittiğinde bilgisayar yeniden başlatılabilir. Ardından Ubuntu ilk açılışta kullanıcı adı ve parola oluşturmanızı ister. WSL sürümünü kontrol etmek için:

wsl -l -v

Dağıtımınızın VERSION sütununda 2 yazmalıdır. Değilse şu komutla yükseltin:

wsl --set-version Ubuntu 2

2) Ubuntu içinde Docker Engine kurulumu

Ubuntu terminalinde önce sistem paketlerini güncelleyin:

sudo apt update && sudo apt upgrade -y

Ardından gerekli paketleri yükleyin:

sudo apt install -y ca-certificates curl gnupg

Docker’ın resmi deposunu eklemek için anahtar ve repo tanımını yapın (Ubuntu sürümüne uygun komutlar güncel yöntemdir):

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Şimdi Docker paketlerini kurun:

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3) WSL2’de Docker servisini başlatma (systemd ayarı)

Windows 11’in güncel sürümlerinde WSL içinde systemd desteği bulunuyor. Docker’ın her açılışta sorunsuz başlaması için bu ayarı aktif etmek iyi olur. Ubuntu’da şu dosyayı düzenleyin:

sudo nano /etc/wsl.conf

İçine şunları ekleyin:

[boot]
systemd=true

Ardından Windows tarafında WSL’i kapatıp tekrar açın:

wsl --shutdown

Ubuntu’yu tekrar açtıktan sonra Docker servis durumunu kontrol edin:

sudo systemctl status docker

4) “sudo”suz Docker kullanımı

Her komutta sudo yazmamak için kullanıcıyı docker grubuna ekleyin:

sudo usermod -aG docker $USER

Oturumu kapatıp açın ya da WSL’i yeniden başlatın. Sonrasında test:

docker run --rm hello-world

5) Windows Terminal’den pratik kullanım

Bu kurulumda Docker komutlarını Ubuntu içinde çalıştırırsınız. Windows Terminal’de Ubuntu sekmesi açıp docker ps gibi komutları kullanmak yeterli. Ayrıca proje klasörünüz Windows dosya sistemindeyse (ör. C:\projeler), WSL’den /mnt/c/projeler yoluyla erişebilirsiniz. Ancak performans için kritik bir öneri var: sık I/O yapan projelerde (Node.js, PHP, büyük bağımlılık klasörleri) kodu mümkünse WSL dosya sisteminde tutmak (ör. ~/projects) daha hızlı olur.

6) Performans ve kaynak ayarları (.wslconfig)

WSL2, varsayılan olarak RAM’i dinamik yönetir; bazı senaryolarda fazla RAM tüketebilir. Windows kullanıcı klasörünüzde (ör. C:\Users\KullaniciAdiniz) .wslconfig dosyası oluşturup kaynak sınırı koyabilirsiniz. Örnek:

[wsl2]
memory=6GB
processors=4
swap=2GB

Değişiklikten sonra wsl --shutdown ile WSL’i yeniden başlatın. Bu ayarlar özellikle aynı anda IDE, tarayıcı ve birkaç konteyner çalıştırırken sistemi daha öngörülebilir hale getirir.

7) Artılar, eksiler ve ne zaman tercih edilmeli?

Artılar: Daha hafif kurulum, daha az arka plan servisi, Docker Desktop bağımlılığı olmadan çalışma, Linux tabanlı daha “doğal” Docker deneyimi.

Eksiler: Bazı GUI özellikleri (entegre panel, otomatik güncelleyici) yoktur; port yönlendirme ve dosya sistemine erişimde dikkat gerekir. Yine de CLI odaklı geliştiriciler için bu yöntem günlük kullanımda gayet konforlu ve verimlidir.

Sonuç olarak, Windows 11 + WSL2 ikilisiyle Docker Desktop kurmadan da güncel ve hızlı bir konteyner çalışma ortamı kurabilirsiniz. Kurulum bir kez tamamlandıktan sonra günlük iş akışı büyük ölçüde “Linux’ta Docker kullanmak” kadar akıcı hale gelir.

30 Ocak 2026 Cuma

Windows 11’de WSL2 ile Docker Desktop Kullanmadan Docker Kurulumu ve İnce Ayar Rehberi

Docker Desktop olmadan neden Docker?

Windows 11 kullanırken Docker ile çalışmanın en popüler yolu Docker Desktop kurmak. Ancak kurumsal lisans kısıtları, kaynak tüketimi veya “arka planda sürekli servis” yaklaşımını sevmeme gibi sebeplerle daha hafif ve kontrol edilebilir bir seçenek arayanların sayısı artıyor. Bu yazıda, WSL2 üzerinde Docker Engine kurarak Docker Desktop olmadan konteyner çalıştırmayı adım adım anlatacağım. Ayrıca performans, ağ erişimi ve sık görülen hatalar için pratik ince ayarları da ekleyeceğim.

Ön koşullar

Bu rehber Windows 11 ve WSL2 mantığını temel alır. İhtiyacınız olanlar: Windows 11, yönetici yetkisi, WSL2 etkinleştirilmiş bir Linux dağıtımı (Ubuntu önerilir) ve PowerShell/Windows Terminal. WSL sürümünüzü kontrol etmek için PowerShell’de wsl -l -v komutunu kullanabilirsiniz. Dağıtımınızın “VERSION” değeri 2 değilse, wsl --set-version Ubuntu 2 ile dönüştürebilirsiniz.

1) WSL2 üzerinde Docker Engine kurulumu

Ubuntu’yu açın ve önce sistem paketlerini güncelleyin:

sudo apt update && sudo apt upgrade -y

Docker’ın resmi deposunu eklemek için gerekli paketleri kurun:

sudo apt install -y ca-certificates curl gnupg

Docker GPG anahtarını ekleyin ve depo kaydını oluşturun:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ardından Docker Engine ve temel bileşenleri kurun:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2) Servis yönetimi: systemd ve Docker’ın başlatılması

Güncel WSL sürümlerinde systemd desteği mevcut. Etkinleştirirseniz Docker’ı normal Linux gibi servis olarak yönetebilirsiniz. Ubuntu içinde şu dosyayı düzenleyin:

sudo nano /etc/wsl.conf

İçine şunu ekleyin:

[boot]
systemd=true

Sonra Windows tarafında WSL’i yeniden başlatın (PowerShell):

wsl --shutdown

Ubuntu’yu tekrar açınca Docker servisini başlatın:

sudo systemctl enable --now docker

Kontrol:

docker version
docker info

3) sudo yazmadan Docker kullanmak (güvenli kullanım notuyla)

Sürekli sudo yazmak istemiyorsanız kullanıcıyı docker grubuna ekleyebilirsiniz:

sudo usermod -aG docker $USER

Oturumu kapatıp açın veya WSL’i yeniden başlatın. Not: Docker grubu pratik ama güçlü yetkilere sahiptir; paylaşımlı makinelerde dikkatli olun.

4) Hızlı test: nginx konteyneri çalıştırma

Kurulumun doğru olduğunu görmek için küçük bir test iyi olur:

docker run --rm -d --name web -p 8080:80 nginx:alpine

Ardından tarayıcıda http://localhost:8080 adresini açın. WSL2 ağ katmanı sayesinde port yönlendirme genellikle sorunsuz çalışır. İşiniz bitince durdurun:

docker stop web

5) İnce ayar: disk performansı ve proje konumu

WSL2 + Docker kullanımında en kritik konu dosya sistemi performansıdır. Projenizi Windows dosya sisteminde (ör. /mnt/c/...) tutup konteyner içinde bind mount yaparsanız, yoğun I/O işlemlerinde yavaşlık görebilirsiniz. Daha iyi performans için kaynak kodunu WSL Linux dosya sisteminde (ör. /home/kullanici/proje) konumlandırın. Editör olarak VS Code kullanıyorsanız Remote - WSL eklentisiyle bu akış oldukça rahattır.

6) Sık karşılaşılan sorunlar ve çözümler

“Cannot connect to the Docker daemon” hatası alıyorsanız çoğunlukla servis çalışmıyordur: sudo systemctl status docker ile kontrol edin, gerekirse sudo systemctl restart docker deneyin. Systemd aktif değilse, önce /etc/wsl.conf ayarını doğrulayın ve wsl --shutdown ile tamamen kapatıp açın.

Port çakışması yaşarsanız (ör. 8080 doluysa) farklı bir port seçin: -p 8081:80. Ayrıca bazı güvenlik yazılımları veya şirket VPN’leri localhost portlarını etkileyebilir; sorun yaşarsanız geçici olarak kapatıp test etmek mantıklı olur.

Kaynak tüketimi için WSL’e limit koyabilirsiniz. Windows kullanıcı dizininizde .wslconfig dosyası oluşturup bellek/CPU sınırı vermek, özellikle uzun süre açık kalan geliştirme makinelerinde sistemi rahatlatır. Örneğin 4 GB RAM ve 4 çekirdek sınırı çoğu orta ölçekli iş için yeterlidir.

Sonuç

Docker Desktop olmadan Docker kullanmak, özellikle “hafif ve kontrol edilebilir” bir geliştirme ortamı isteyenler için güçlü bir alternatif. WSL2 üzerinde Docker Engine kurduğunuzda hem Linux ekosisteminin doğallığını korur hem de Windows tarafındaki iş akışınızı bozmadan konteynerlerle çalışabilirsiniz. Doğru proje konumu seçimi ve systemd ile servis yönetimi gibi küçük dokunuşlar, deneyimi ciddi biçimde iyileştirir.

23 Ocak 2026 Cuma

Windows 11’de WSL2 ile Docker Desktop Kullanmadan Docker Kurulumu ve İleri Seviye Ayarlar

Docker Desktop’sız Docker: Neden ve Ne Kazandırır?

Windows 11 üzerinde Docker kullanmanın en popüler yolu Docker Desktop kurmaktır. Ancak kurumsal lisans politikaları, kaynak tüketimi, arka planda çalışan servislerin fazlalığı veya daha “Linux’a yakın” bir Docker deneyimi isteği, birçok geliştiriciyi alternatif arayışına itiyor. İyi haber şu: WSL2 sayesinde Docker Engine’i doğrudan Linux tarafında kurup, Windows’tan komut satırı ile yönetmek mümkün. Bu yöntem genellikle daha hafif çalışır, daha kontrol edilebilir bir yapı sunar ve özellikle terminal odaklı geliştiriciler için oldukça rahattır.

Bu yazıda, Windows 11’de WSL2 (Ubuntu örneğiyle) kullanarak Docker Engine kurulumunu, Windows terminalinden Docker komutlarını çalıştırmayı ve performans/depoma/ ağ ayarları gibi birkaç ileri seviye noktayı adım adım ele alacağım. Sonuçta Docker Desktop olmadan da modern konteyner geliştirme akışını sürdürebileceksiniz.

Ön Koşullar: WSL2 ve Ubuntu Kurulumu

Öncelikle sisteminizde WSL2 aktif olmalı. Windows Terminal veya PowerShell’i yönetici olarak açıp aşağıdaki komutu çalıştırabilirsiniz:

wsl --install

Kurulum tamamlandıktan sonra Microsoft Store üzerinden Ubuntu yükleyebilir ya da komutla kurabilirsiniz. Ardından Ubuntu’yu açıp kullanıcı adı/parola belirleyin. WSL sürümünü kontrol etmek için:

wsl -l -v

Ubuntu’nun VERSION sütununda 2 yazdığından emin olun. Değilse:

wsl --set-version Ubuntu 2

Adım 1: Ubuntu’da Docker Engine Kurulumu (Resmi Depo)

WSL içindeki Ubuntu terminalinde önce paketleri güncelleyin:

sudo apt update && sudo apt upgrade -y

Gerekli paketleri yükleyin:

sudo apt install -y ca-certificates curl gnupg

Docker’ın resmi GPG anahtarını ekleyin ve depo kaynağını tanımlayın:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Sonra Docker paketlerini kurun:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Adım 2: Docker Servisini WSL’de Çalıştırma

WSL2’de systemd artık destekleniyor; en temiz yöntem systemd’yi açmaktır. Ubuntu içinde /etc/wsl.conf dosyasını düzenleyin:

sudo nano /etc/wsl.conf

İçeriğe şunu ekleyin:

[boot]
systemd=true

Ardından Windows tarafında WSL’i kapatıp yeniden başlatın:

wsl --shutdown

Ubuntu’yu tekrar açınca Docker servisini başlatın ve durumunu kontrol edin:

sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker

Adım 3: Sudo’suz Docker Kullanımı (Geliştirici Konforu)

Her komutta sudo yazmamak için kullanıcıyı docker grubuna ekleyin:

sudo usermod -aG docker $USER

Değişikliğin uygulanması için oturumu kapatıp açın ya da Ubuntu terminalini kapatıp yeniden başlatın. Test:

docker run --rm hello-world

Windows Terminal’den Docker Komutlarını Yönetmek

Docker Engine WSL içinde çalıştığı için en basit yönetim biçimi, Windows Terminal’de doğrudan Ubuntu profilini kullanmaktır. Yani komutları Ubuntu sekmesinde çalıştırdığınızda her şey doğal şekilde ilerler. Eğer PowerShell’den tek satırla çalıştırmak isterseniz:

wsl -d Ubuntu -- docker ps

Bu yaklaşım, CI benzeri yerel script’lerde veya kısa kontrollerde oldukça işe yarar.

İleri Seviye Ayar 1: WSL Kaynak Sınırları (RAM/CPU)

WSL, varsayılan olarak sistem kaynaklarını dinamik kullanır. Docker build süreçleri ağırlaştığında RAM tüketimi artabilir. Bunu sınırlamak için Windows kullanıcı dizininize .wslconfig dosyası oluşturup örnek bir sınır koyabilirsiniz:

[wsl2]
memory=6GB
processors=4

Değişiklikten sonra wsl --shutdown yaparak yeniden başlatın. Bu ayar, özellikle dizüstü bilgisayarlarda fan ve pil performansını belirgin şekilde iyileştirir.

İleri Seviye Ayar 2: Dosya Performansı ve Proje Konumu

Kritik nokta şu: Docker konteynerleri WSL içindeki Linux dosya sisteminde daha hızlı çalışır. Projeyi /home/kullanici/proje altında tutmak genelde, projeyi /mnt/c üzerinden Windows dosya sisteminde tutmaktan daha performanslıdır. Özellikle Node.js bağımlılıkları, PHP vendor dizinleri veya çok sayıda küçük dosya içeren projelerde fark gözle görülür hale gelir.

İleri Seviye Ayar 3: Docker Compose v2 ve Buildx

Kurulumda gelen docker compose (v2) ve buildx eklentileri, modern geliştirme akışının temel parçaları. Örneğin çoklu servisli bir projeyi ayağa kaldırmak için:

docker compose up -d

Daha hızlı ve tekrar kullanılabilir build işlemleri için build cache’i etkin kullanan bir Dockerfile tasarlamak, WSL ortamında da doğrudan avantaj sağlar. Ayrıca buildx ile farklı platformlar için build almak (ör. linux/amd64 ve linux/arm64) ileri seviye senaryolarda elinizi güçlendirir.

Sık Karşılaşılan Sorunlar ve Hızlı Çözümler

Docker daemon çalışmıyor: systemd açık mı kontrol edin. cat /etc/wsl.conf ile doğrulayın, ardından wsl --shutdown ile yeniden başlatın.

Permission denied: Kullanıcınız docker grubunda olmayabilir. groups komutuyla kontrol edin, gerekirse usermod -aG docker adımını tekrarlayın.

Disk şişmesi: Konteyner ve imajlar büyüdükçe WSL sanal diski genişler. Düzenli olarak docker system prune kullanmak ve gereksiz imajları temizlemek iyi bir alışkanlıktır.

Sonuç

Docker Desktop kullanmadan, WSL2 üzerinde Docker Engine çalıştırmak Windows 11’de hem pratik hem de “Linux’a yakın” bir geliştirme ortamı sunuyor. Kurulum bir kez oturduğunda günlük kullanımda fark edilir bir hafiflik sağlıyor; kaynak yönetimi daha esnek oluyor ve terminal odaklı iş akışları daha akıcı ilerliyor. Eğer konteyner geliştirmeyi daha kontrollü ve minimal bir kurulumla sürdürmek istiyorsanız, bu yöntem kesinlikle değerlendirilmeye değer.

20 Ocak 2026 Salı

Windows 11’de WSL2 ile Docker Desktop Kullanmadan Docker Kurulumu ve Performans Ayarları

WSL2 ile “hafif” Docker fikri neden mantıklı?

Windows 11 üzerinde Docker çalıştırmanın en popüler yolu Docker Desktop. Ancak bazı senaryolarda (kurumsal lisans politikaları, kaynak tüketimi, arka planda çalışan servisler, ekstra arayüz katmanı) Docker Desktop yerine doğrudan WSL2 içinde Docker Engine kurmak daha temiz bir çözüm olabiliyor. Bu yazıda, Docker Desktop kullanmadan WSL2 üzerinde Docker’ı kuracağız; ardından performans ve disk kullanımını iyileştiren birkaç kritik ayarı yapacağız.

Ön koşullar

Gerekenler: Windows 11, yönetici yetkisi, WSL2 desteği ve bir Linux dağıtımı (Ubuntu önerilir). Windows tarafında WSL2 etkin değilse önce etkinleştirmeniz gerekir. Ayrıca BIOS/UEFI’de sanallaştırmanın açık olması, WSL2’nin stabil çalışması için önemlidir.

Adım 1: WSL2 ve Ubuntu kurulumu

PowerShell’i yönetici olarak açıp aşağıdaki komutu çalıştırın. Bu komut WSL’yi kurar ve varsayılan olarak Ubuntu’yu indirip kurabilir:

Komut: wsl --install

Kurulumdan sonra bilgisayarınızı yeniden başlatın. Ardından Ubuntu ilk açılışta kullanıcı adı/şifre oluşturmanızı ister. Mevcut WSL dağıtımlarınızı görmek için:

wsl -l -v

Burada dağıtımınızın Version 2 olduğundan emin olun. Değilse:

wsl --set-version Ubuntu 2

Adım 2: WSL2 içinde Docker Engine kurulumu

Ubuntu terminalini açın ve sistemi güncelleyin:

sudo apt update && sudo apt upgrade -y

Docker’ın resmi deposunu eklemek güncel sürüm için daha sağlıklıdır. Sırasıyla şu komutları çalıştırın:

sudo apt install -y ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

Şimdi Docker Engine ve gerekli bileşenleri kurun:

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Adım 3: Docker’ı root’suz kullanmak (sudo derdini bitirin)

Geliştirici deneyimi açısından en önemli adım: kullanıcıyı docker grubuna eklemek. Böylece her komutta sudo yazmanız gerekmez.

sudo usermod -aG docker $USER

Değişikliğin uygulanması için Ubuntu oturumunu kapatıp açın ya da şu komutla kabuğu yenileyin:

newgrp docker

Docker’ın çalıştığını doğrulamak için:

docker run --rm hello-world

Adım 4: WSL2’de Docker servisini otomatik başlatma

WSL, klasik Linux gibi her zaman systemd ile açılmayabilir. Windows 11 ve güncel WSL sürümlerinde systemd desteği var. Etkinleştirerek Docker’ın açılışta başlamasını sağlayabilirsiniz.

WSL içinde /etc/wsl.conf dosyasını düzenleyin:

sudo nano /etc/wsl.conf

İçerik şu şekilde olsun:

[boot] systemd=true

Ardından Windows tarafında WSL’yi yeniden başlatın:

wsl --shutdown

Ubuntu’yu tekrar açınca Docker servisini başlatıp kalıcı hale getirebilirsiniz:

sudo systemctl enable --now docker

Adım 5: Performans için kritik ayar: proje dosyalarını nereye koymalısınız?

WSL2’de en sık yapılan hata, proje klasörünü /mnt/c gibi Windows dosya sistemi altında tutup Docker build ve bind mount işlemlerini burada yapmak. Bu kullanım çalışır ama dosya erişimi katmanı nedeniyle özellikle Node.js, PHP, Python gibi çok sayıda küçük dosya okuyan projelerde performans düşebilir.

Öneri: Kodunuzu WSL2 Linux dosya sistemi içinde (ör. /home/kullanici/proje) tutun. Windows’tan erişmek için de Dosya Gezgini’ne \\wsl$ yazarak Ubuntu dizinlerine ulaşabilirsiniz. Bu sayede Docker build süreleri ve canlı geliştirme (hot reload) daha stabil hale gelir.

Adım 6: Disk şişmesini kontrol etme ve temizlik

Docker kullanırken imajlar ve kullanılmayan katmanlar zamanla disk alanını şişirir. Düzenli aralıklarla temizlik yapmak iyi bir alışkanlık:

docker system df

docker system prune -a

Eğer sadece kullanılmayan container’ları ve dangling imajları temizlemek isterseniz daha güvenli bir yaklaşım seçebilirsiniz. Ancak prune -a tüm kullanılmayan imajları da siler; tekrar gerektiğinde yeniden indirmek zorunda kalırsınız.

Sık karşılaşılan sorunlar

“Cannot connect to the Docker daemon”: Docker servisi çalışmıyor olabilir. Systemd etkinse sudo systemctl status docker ile kontrol edin. Değilse geçici olarak sudo dockerd ile daemon başlatılabilir, fakat kalıcı çözüm systemd’yi aktif etmektir.

Port çakışmaları: Windows’ta aynı portu kullanan bir servis varsa container ayağa kalksa bile erişim sorunları yaşayabilirsiniz. netstat ile Windows tarafında portu kim kullanıyor bakın ve compose dosyanızdaki portları değiştirin.

Ağ erişimi: WSL2 ağ katmanı NAT üzerinden çalışır. Yerel ağdan WSL2 içindeki bir servise erişmek bazen ekstra yönlendirme gerektirebilir; çoğu geliştirme senaryosunda ise localhost yeterlidir.

Sonuç

Docker Desktop olmadan WSL2 üzerinde Docker Engine kurmak, daha az arka plan bileşeniyle daha “Linux’a yakın” bir deneyim sunar. Özellikle performans hassas projelerde dosyaları Linux tarafında tutmak ve systemd ile Docker’ı otomatik başlatmak günlük kullanım konforunu ciddi şekilde artırır. Bu kurulumla hem docker compose kullanabilir hem de modern buildx özelliklerinden faydalanabilirsiniz.

13 Ocak 2026 Salı

Windows 11’de WSL2 ile Docker Kurulumu: Yerel Geliştirmede Hızlı ve Temiz Bir Linux Ortamı

WSL2 + Docker neden bu kadar popüler?

Windows üzerinde yazılım geliştirirken bir yandan da “Linux gibi” çalışmak isteyenlerin sayısı arttı. Eskiden bunun için sanal makine kurmak, ayrı bir disk imajı yönetmek veya çift işletim sistemi kullanmak gerekiyordu. Windows 11 ile birlikte WSL2 (Windows Subsystem for Linux) olgunlaştı ve Docker’ı da bu altyapı üstünden kullanmak oldukça pratik hale geldi. Sonuç: daha az kaynak tüketen, daha hızlı açılan ve proje bağımlılıklarını daha tutarlı yöneten bir geliştirme ortamı.

Bu yazıda, Windows 11 üzerinde WSL2’yi etkinleştirip Ubuntu kuracak, ardından Docker’ı WSL2 motoruyla çalıştıracak şekilde yapılandıracağız. Amacımız “kuruluyor mu?” seviyesini geçip, günlük kullanımda sorun çıkaran detayları da doğru ayarlamak.

Ön koşullar ve kısa kontrol listesi

Başlamadan önce Windows 11’in güncel olduğundan emin olun. Ayrıca sisteminizde sanallaştırma (Virtualization) açık olmalı. Bunu görev yöneticisinde Performans > CPU bölümünde “Sanallaştırma: Etkin” şeklinde görebilirsiniz. Kapalıysa BIOS/UEFI üzerinden açmanız gerekebilir.

Kurulum için yönetici yetkisi olan bir Windows hesabı ve en az 8 GB RAM önerilir. Docker konteynerleri çalıştıracağımız için disk tarafında da rahat etmek adına en az 20 GB boş alan iyi olur.

1) WSL2’yi etkinleştirme ve Ubuntu kurulumu

Windows Terminal’i (PowerShell) yönetici olarak açın ve aşağıdaki komutu çalıştırın:

wsl --install

Bu komut WSL bileşenlerini yükler, varsayılan Linux dağıtımını (genellikle Ubuntu) kurar ve gerekli özellikleri aktif eder. Kurulumdan sonra sistem yeniden başlatma isteyebilir.

Kurulum tamamlanınca Ubuntu ilk açılışta sizden bir kullanıcı adı ve parola belirlemenizi ister. Bu parola Windows parolanız değildir; Linux içi yönetici işlemlerinde kullanılacak.

WSL sürümünüzü kontrol etmek için şu komutu kullanın:

wsl -l -v

Burada Ubuntu’nun “Version” sütununda 2 görünmesini hedefliyoruz. Eğer 1 görünüyorsa şu komutla WSL2’ye çevirebilirsiniz:

wsl --set-version Ubuntu 2

2) Docker Desktop kurulumu ve WSL2 entegrasyonu

Docker’ı Windows üzerinde en sorunsuz şekilde kullanmanın yolu çoğu senaryoda Docker Desktop kurmaktır. Kurulum sırasında “Use WSL 2 instead of Hyper-V” benzeri bir seçenek görürseniz WSL2’yi tercih edin. Kurulum tamamlandıktan sonra Docker Desktop’ı açın.

Docker Desktop içinde Settings bölümüne girin ve şu kontrolleri yapın:

General altında WSL2 tabanlı motorun açık olduğundan emin olun.

Resources > WSL Integration altında Ubuntu dağıtımınız için entegrasyonu etkinleştirin. Burada sadece kurduğunuz dağıtımı seçmeniz yeterli.

Bu noktadan sonra Docker komutlarını doğrudan Ubuntu terminalinde kullanabilirsiniz. Ubuntu içinde doğrulamak için:

docker version

Eğer sürüm bilgileri geliyorsa entegrasyon tamamdır.

3) Hızlı test: Basit bir konteyner çalıştırma

Kurulumun sağlıklı olduğundan emin olmak için klasik test imajını çalıştırın:

docker run --rm hello-world

Bu komut imajı indirir ve bir mesaj basıp çıkar. “Hello from Docker!” benzeri bir çıktı görmeniz gerekir. Bu aşamada hata alırsanız, Docker Desktop’ın çalıştığını ve Ubuntu entegrasyonunun açık olduğunu yeniden kontrol edin.

4) Geliştiriciler için kritik ayarlar: Dosya sistemi ve performans

WSL2 ile Docker kullanırken performansı en çok etkileyen konu proje dosyalarının nerede durduğudur. En iyi performans için kodlarınızı Windows tarafındaki C:\ altında değil, Ubuntu’nun kendi dosya sistemi içinde tutun. Örneğin Ubuntu terminalinde bir proje klasörü oluşturup burada çalışmak genellikle daha akıcı olur:

mkdir -p ~/projelerim/ornek

Windows dosyalarına Ubuntu’dan /mnt/c üzerinden erişebilirsiniz; ancak çok sayıda küçük dosyaya sahip Node.js, PHP Composer veya Python paketlerinde bu yol daha yavaş hissedilebilir.

5) İleri seviye ipuçları: Kaynak yönetimi ve ağ davranışı

WSL2, Linux çekirdeğini hafif bir sanallaştırma katmanında çalıştırır ve RAM kullanımını dinamik yönetir. Yine de yoğun konteyner kullanımında kaynak sınırlarını ayarlamak isteyebilirsiniz. Bunun için Windows kullanıcı dizininizde .wslconfig dosyası oluşturup örneğin RAM ve CPU limitleri belirlemek mümkün olur. Bu sayede “Docker çalışınca bilgisayar yavaşlıyor” şikâyetlerini azaltabilirsiniz.

Ağ tarafında ise konteyner portlarını Windows’a yönlendirmek genelde sorunsuzdur. Örneğin bir web servisini 8080 portunda ayağa kaldırdıysanız tarayıcıdan http://localhost:8080 ile erişebilirsiniz. Kurumsal ağlarda VPN veya güvenlik yazılımları bazen yerel port erişiminde sorun çıkarabilir; böyle bir durumda Windows güvenlik duvarı ve VPN bölünmüş tünelleme ayarları kontrol edilmelidir.

Sonuç: Windows üzerinde “temiz” Linux geliştirme deneyimi

WSL2 ile Docker’ı bir araya getirdiğinizde, Windows’un konforundan vazgeçmeden Linux araç zincirini neredeyse yerel hızda kullanabilirsiniz. Üstelik proje bağımlılıklarını konteynerlere taşıyarak “bende çalışıyor” tartışmalarını ciddi ölçüde azaltırsınız. Doğru dosya konumlandırması, WSL entegrasyonu ve temel kaynak ayarlarıyla bu kurulum uzun süre sorunsuz şekilde günlük iş akışınıza hizmet eder.

7 Ocak 2026 Çarşamba

Windows 11’de WSL2 ile Docker Desktop’sız Container Çalıştırma (Podman ile İleri Seviye Rehber)

Docker Desktop’sız bir konteyner ortamı mümkün mü?

Windows 11 kullanırken konteyner çalıştırmanın “varsayılan” yolu çoğu kişi için Docker Desktop oluyor. Ancak lisanslama tercihleri, kaynak tüketimi ya da daha yalın bir kurulum isteği nedeniyle alternatif arayanların sayısı arttı. Bu yazıda, WSL2 üzerinde Podman kurarak Docker Desktop olmadan konteyner çalıştırmayı adım adım anlatacağım. Yöntem; geliştiriciler, DevOps meraklıları ve yerel ortamda hızlı test yapanlar için güncel, pratik ve ileri seviye sayılabilecek bir çözüm sunuyor.

Ön koşullar: WSL2 ve Linux dağıtımı

Podman’ı Windows’a doğrudan kurup kullanmak yerine, en stabil deneyimi WSL2 içindeki Linux ortamında alırsınız. Windows 11’de WSL2 genellikle hazır gelir; yine de kontrol etmek için PowerShell’i yönetici olarak açıp aşağıdaki komutu kullanabilirsiniz:

wsl --install

Bu komut, varsayılan bir dağıtım kurabilir. Alternatif olarak Microsoft Store’dan Ubuntu 22.04/24.04 gibi bir sürüm seçmek daha kontrollü olur. Kurulumdan sonra dağıtımı açıp kullanıcı oluşturun ve sistemi güncelleyin:

sudo apt update && sudo apt upgrade -y

Podman kurulumu (Ubuntu)

Ubuntu üzerinde Podman kurulumu oldukça basittir. Depo paketleri çoğu senaryoda yeterli olur:

sudo apt install -y podman

Kurulum tamamlandıktan sonra sürümü doğrulayın:

podman --version

Podman’ın önemli farkı şudur: Docker’daki gibi tek bir “daemon”a bağlı olmak zorunda değildir. Bu yaklaşım hem güvenlik hem de mimari sadelik açısından avantaj sağlar. WSL2 üzerinde de bu sadelik hissedilir.

Rootless çalışma ve temel ayarlar

Podman varsayılan olarak rootless (kök yetkisiz) çalışmaya uygundur. Bu, özellikle yerel geliştirme makinesinde iyi bir güvenlik alışkanlığıdır. Rootless ağ ve port yönlendirme konularında bazı kısıtlar olabilir; güncel Podman sürümleri bunu büyük ölçüde kolaylaştırsa da yine de mantığını bilmek önemlidir.

İlk deneme için basit bir “hello world” çalıştırın:

podman run --rm docker.io/library/hello-world

İmaj çekme (pull) sırasında Docker Hub kullanıyorsanız “docker.io/...” şeklinde açık yazmak, ileride registry karmaşasını azaltır. İsterseniz kısa yol olarak şöyle de çalışır:

podman run --rm hello-world

Docker komutlarına alışkın olanlar için: Podman Docker uyumluluğu

Podman, Docker CLI’ye benzer komutları destekler. Hatta çoğu ekipte geçişi kolaylaştırmak için bir “alias” yaklaşımı kullanılır. Örneğin terminal profilinize şu satırı ekleyebilirsiniz:

alias docker=podman

Bu sayede docker run gibi alışık olduğunuz komutlar, arka planda Podman ile çalışır. Tabii ki bu bir alışkanlık konusu; ben özellikle eğitim ve üretim öncesi testlerde komutun gerçekten Podman olduğunu açık tutmayı tercih ediyorum.

Podman ile web servisi çalıştırma (port yayınlama örneği)

Basit bir Nginx konteyneri çalıştırıp Windows’tan tarayıcıyla erişmek iyi bir testtir. WSL2, Windows ile ağ köprüsü kurabildiği için genellikle sorunsuz çalışır:

podman run -d --name webtest -p 8080:80 docker.io/library/nginx:latest

Ardından Windows’ta tarayıcıdan http://localhost:8080 adresini deneyin. Eğer erişimde sorun yaşarsanız, WSL2’nin bazen IP/localhost yönlendirmesinde farklı davrandığını unutmayın. Bu durumda WSL içinden ip addr ile dağıtımın IP’sini kontrol edip o IP üzerinden erişmeyi deneyebilirsiniz.

Podman Compose: Docker Compose alternatifi

Çoklu servis senaryolarında Compose benzeri bir araca ihtiyaç doğar. Podman ekosisteminde bunun karşılığı çoğu zaman podman-compose olur. Ubuntu’da şu şekilde kurabilirsiniz:

sudo apt install -y podman-compose

Ardından proje klasörünüzdeki docker-compose.yml (adı böyle kalabilir) dosyasını şu komutla çalıştırabilirsiniz:

podman-compose up -d

Her Compose dosyası birebir uyumlu olmayabilir; özellikle ağ sürücüleri, volume sürücüleri veya bazı özel Docker özellikleri kullanılıyorsa küçük uyarlamalar gerekebilir. Yine de tipik web+db gibi senaryolarda oldukça tatmin edici sonuç verir.

İmaj yönetimi ve temizlik: Disk alanını kontrol altında tutma

Konteyner dünyasında zamanla biriken imaj katmanları disk tüketimini artırır. Podman’da temel temizlik için şu komutlar işinizi görür:

podman images

podman ps -a

podman system prune -a

Özellikle WSL2 disk imajı büyüyebildiği için arada bir “prune” yapmak iyi bir alışkanlık. Ancak system prune -a kullanılmayan imajları da sileceğinden, sık kullandığınız baz imajların tekrar indirileceğini hesaba katın.

Ne zaman Podman, ne zaman Docker Desktop?

Podman’ın WSL2 üzerinde Docker Desktop’sız çalışması; hafiflik, esneklik ve açık bir mimari isteyenler için güçlü bir seçenek. Buna karşın bazı ekipler Docker Desktop’ın GUI araçlarını, Kubernetes entegrasyonunu veya kurumsal standartlarını tercih edebilir. Benim önerim şu: Yerel geliştirmede hızlı, sade ve script odaklı bir akış istiyorsanız Podman’ı mutlaka deneyin; kurumsal ekip standartlarınız Docker Desktop ise yine de Podman’ı alternatif olarak elinizin altında tutun.

Bu rehberdeki adımlarla Windows 11 üzerinde WSL2 tabanlı, güncel ve ileri seviye sayılabilecek bir konteyner geliştirme ortamını Docker Desktop olmadan kurmuş oldunuz. Bir sonraki adım olarak, CI süreçlerinizde Podman ile imaj build edip registry’ye push etmeyi ve rootless güvenlik ayarlarını derinleştirmeyi düşünebilirsiniz.

28 Aralık 2025 Pazar

Windows 11’de WSL2 ile Docker Desktop’sız Geliştirici Ortamı Kurulumu (Adım Adım)

Docker Desktop olmadan neden Docker?

Windows 11’de Docker kullanmanın en popüler yolu Docker Desktop. Ancak özellikle kurumsal cihazlarda lisans politikaları, performans beklentisi veya daha “hafif” bir kurulum isteği nedeniyle alternatif arayan çok kişi var. Bu yazıda, WSL2 (Windows Subsystem for Linux) üzerinde Docker Engine kurarak, Docker Desktop’a ihtiyaç duymadan konteyner tabanlı bir geliştirme ortamını nasıl oluşturabileceğinizi adım adım anlatacağım. Hedefimiz: Windows’ta terminalden yönetilen, güncel ve performanslı bir Docker deneyimi.

Ön koşullar: Neler gerekli?

Bu rehber için Windows 11 kullanmanız önerilir (Windows 10’da da çalışır). Yönetici yetkisine sahip olmanız, PowerShell’i açabilmeniz ve Microsoft Store’dan bir Linux dağıtımı kurabilmeniz yeterli. Ayrıca BIOS/UEFI’de sanallaştırmanın açık olması gerekir. Kurulum sırasında komutları kopyalayıp yapıştırmanız işleri hızlandırır.

1) WSL2’yi etkinleştirme ve Ubuntu kurma

Önce WSL2’yi açalım. PowerShell’i Yönetici olarak çalıştırın ve şu komutu girin:

wsl --install

Bu komut genellikle WSL bileşenlerini etkinleştirir ve varsayılan dağıtım olarak Ubuntu’yu kurar. Eğer sisteminizde WSL zaten kuruluysa, sürümü kontrol etmek için:

wsl -l -v

Listede dağıtımınızın sürümü 2 görünmelidir. Değilse şu komutla yükseltebilirsiniz:

wsl --set-version Ubuntu 2

2) Ubuntu içinde temel güncellemeler

Başlat menüsünden Ubuntu’yu açın ve paket listesini güncelleyin:

sudo apt update && sudo apt upgrade -y

Bu adım, Docker kurulumu sırasında bağımlılık sorunlarını azaltır. Ardından gerekli yardımcı paketleri yükleyelim:

sudo apt install -y ca-certificates curl gnupg lsb-release

3) Docker Engine kurulumu (Ubuntu/WSL2)

WSL2 üzerinde en sağlıklı yöntem, Docker’ı Docker’ın resmi deposundan kurmaktır. Önce anahtar ve depo ekleyelim:

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Şimdi Docker paketlerini kuralım:

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4) Docker’ı root’suz (daha rahat) kullanma

Varsayılan olarak Docker komutları root yetkisi ister. Sürekli sudo yazmamak için kullanıcıyı docker grubuna ekleyin:

sudo usermod -aG docker $USER

Ardından Ubuntu oturumunu kapatıp tekrar açın (WSL penceresini kapatmak yeterli). Not: Bazı sistemlerde değişikliğin etkinleşmesi için Windows tarafında şu komutla WSL’yi yeniden başlatmak gerekebilir:

wsl --shutdown

5) Docker servisinin WSL2’de başlatılması

WSL dağıtımlarında systemd her zaman varsayılan olmayabilir. Windows 11’de güncel WSL sürümleri systemd desteği sunuyor. Eğer kullanmak isterseniz Ubuntu içinde /etc/wsl.conf dosyasını oluşturup şu satırları ekleyin:

[boot]
systemd=true

Sonra Windows’ta wsl --shutdown çalıştırıp Ubuntu’yu yeniden açın. Ardından Docker servis durumunu kontrol edin:

systemctl status docker

Aktif değilse başlatın:

sudo systemctl enable --now docker

6) Kurulum testi: İlk konteynerinizi çalıştırın

Şimdi her şeyin çalıştığını doğrulamak için klasik testi yapalım:

docker run --rm hello-world

Çıktıda Docker’ın başarıyla çalıştığını belirten bir mesaj görmelisiniz. Ardından Compose eklentisini test etmek için sürüme bakabilirsiniz:

docker compose version

7) Windows ile dosya performansı: Küçük ama kritik bir ipucu

WSL2 ile Docker kullanırken en çok performans kaybı, proje dosyalarını /mnt/c altında (Windows dosya sistemi) tutunca yaşanır. Özellikle Node.js, PHP veya Python gibi çok sayıda küçük dosya okuyan projelerde fark dramatiktir. En iyi pratik: projeyi Ubuntu dosya sisteminde (ör. /home/kullanici/proje) tutmak ve editörü (VS Code gibi) WSL eklentisiyle oradan açmak. Böylece I/O gecikmeleri düşer, konteyner build süreleri kısalır.

Sonuç: Hafif, hızlı ve kontrol sizde

Bu yöntemle Docker Desktop kullanmadan, WSL2 üzerinde güncel bir Docker Engine kurmuş oldunuz. Avantajları net: daha az arka plan servisi, daha yalın bir kurulum ve Linux’a daha yakın bir çalışma ortamı. Dezavantaj olarak ise bazı GUI odaklı Desktop özellikleri (tek tıkla Kubernetes, bazı entegrasyonlar) sizden ek kurulum isteyebilir. Yine de terminal seven geliştiriciler için bu kurulum, Windows 11 üzerinde konteyner tabanlı geliştirme yapmanın en pratik yollarından biri.

26 Aralık 2025 Cuma

Windows 11’de WSL2 ile Docker Desktop Kurulumu: Yerel Kubernetes ve Hızlı Geliştirme Ortamı

WSL2 + Docker ile neden uğraşalım?

Windows 11 kullanırken Linux tabanlı geliştirme araçlarını “gerçek” bir Linux deneyimine yakın şekilde çalıştırmanın en pratik yolu WSL2’dir. WSL2 üzerine Docker kurduğunuzda, hem container’larınızı yerel olarak hızlıca ayağa kaldırabilir hem de isterseniz Docker Desktop’ın sağladığı entegre Kubernetes’i kullanarak mikro servis denemeleri yapabilirsiniz. Bu yazıda hedefimiz; Windows 11’de WSL2’yi etkinleştirmek, uygun bir Linux dağıtımı kurmak, Docker Desktop’ı WSL2 altyapısıyla çalıştırmak ve yaygın hatalara karşı kontrol listesi oluşturmak.

Ön koşullar

Gerekenler: Windows 11 (güncel), yönetici yetkisi, BIOS/UEFI’de sanallaştırmanın açık olması (Intel VT-x/AMD-V), en az 8 GB RAM (Kubernetes açacaksanız 16 GB daha rahat). Ayrıca kurulum sırasında internet bağlantısı şart.

1) WSL2’yi etkinleştirin

Önce Windows özellikleri tarafında WSL2 altyapısını açacağız. En hızlı yöntem PowerShell’i yönetici olarak çalıştırıp aşağıdaki komutu kullanmaktır:

PowerShell (Yönetici): wsl --install

Bu komut gerekli bileşenleri kurar ve varsayılan bir Linux dağıtımı yükler. Kurulum bitince bilgisayarı yeniden başlatmanız istenebilir. Halihazırda WSL yüklüyse sürümü doğrulamak için şu komutu çalıştırın:

PowerShell: wsl -l -v

Çıktıda dağıtımınızın VERSION sütununda 2 görünmesi gerekir. Eğer 1 ise, WSL2’ye çevirmek için:

PowerShell: wsl --set-version Ubuntu 2

2) Ubuntu’yu güncelleyin ve temel araçları kurun

Ubuntu terminalini açın (Başlat menüsünden “Ubuntu”). İlk iş paketleri güncellemek iyi bir alışkanlıktır:

Ubuntu: sudo apt update && sudo apt -y upgrade

Git ve bazı yardımcı paketler de işinizi kolaylaştırır:

Ubuntu: sudo apt -y install git ca-certificates curl

3) Docker Desktop’ı kurun ve WSL2 entegrasyonunu açın

Docker’ı Windows tarafında Docker Desktop ile yönetmek, ağ, proxy, GUI ayarları ve Kubernetes gibi özellikleri tek yerden kontrol etmenizi sağlar. Resmi kurulum dosyasını Docker’ın web sitesinden indirip standart şekilde kurabilirsiniz. Kurulum sırasında veya sonrasında Docker Desktop içinde şu ayarları kontrol edin:

Ayarlar > General: “Use the WSL 2 based engine” seçeneği açık olmalı.

Ayarlar > Resources > WSL Integration: “Enable integration with my default WSL distro” açık olmalı ve Ubuntu dağıtımınız seçili olmalı.

Bu noktadan sonra Ubuntu terminalinde Docker komutlarının çalıştığını test edin:

Ubuntu: docker version

Eğer sürüm bilgisi geliyorsa bağlantı tamamdır. Basit bir test container’ı çalıştırabilirsiniz:

Ubuntu: docker run --rm hello-world

4) Yerel Kubernetes’i etkinleştirme (isteğe bağlı)

Mikro servis mimarisiyle uğraşıyorsanız, yerel Kubernetes büyük kolaylık. Docker Desktop içinde:

Ayarlar > Kubernetes: “Enable Kubernetes” seçeneğini açın ve kurulumu bekleyin. İlk kurulum birkaç dakika sürebilir.

Kurulum tamamlanınca kubectl komutunu doğrulayın. Docker Desktop genellikle kubectl’i beraberinde getirir. Ubuntu içinde:

Ubuntu: kubectl version --client

Ardından cluster durumuna bakın:

Ubuntu: kubectl get nodes

Tek node “Ready” görünüyorsa, yerel Kubernetes ortamınız hazırdır.

5) Performans için kritik ipuçları

WSL2 üzerinde Docker kullanırken en sık yapılan hata, proje dosyalarını Windows dosya sistemi altında (ör. /mnt/c/...) tutmaktır. Bu, özellikle Node.js, Python veya büyük bağımlılık ağaçlarında ciddi yavaşlamaya neden olur. En iyi pratik, projeleri Linux dosya sistemi içinde (ör. ~/projects) saklamaktır.

Ayrıca Docker Desktop’ta Resources bölümünden CPU/RAM sınırlarını iş yükünüze göre ayarlayın. Kubernetes açıkken RAM tüketimi artar; 8 GB sistemlerde aynı anda çok container çalıştırmak zorlaşabilir.

6) Yaygın sorunlar ve hızlı çözüm listesi

“WSL 2 installation is incomplete”: Windows Update’i çalıştırın, ardından “wsl --update” komutunu deneyin.

Docker çalışıyor ama Ubuntu’da “Cannot connect to the Docker daemon”: Docker Desktop’ta WSL Integration açık mı kontrol edin. Ubuntu’yu kapatıp yeniden açın; gerekirse “wsl --shutdown” ile WSL’yi yeniden başlatın.

Kubernetes pod’ları sürekli Pending: Sistem kaynakları yetersiz olabilir. Docker Desktop kaynak limitlerini yükseltin veya Kubernetes’i kapatın.

Disk şişmesi: Kullanılmayan imaj ve volume’ları düzenli temizleyin: “docker system prune” (dikkatli kullanın) ve büyük volume’ları gözden geçirin.

Sonuç

Windows 11’de WSL2 ile Docker Desktop kurduğunuzda, hem Linux uyumlu geliştirme akışını yakalarsınız hem de container tabanlı projeleri hızlıca test edebilirsiniz. Üstelik tek tıkla Kubernetes açıp kapatabilmek, yerel ortamda prod’a benzer senaryoları denemenin en pratik yollarından biridir. Dosyaları Linux tarafında tutmak ve kaynak ayarlarını doğru yapmak, bu kurulumdan maksimum verimi almanızı sağlar.

22 Aralık 2025 Pazartesi

Windows 11’de WSL2 ile Docker Kurulumu ve Performans Ayarları (Adım Adım)

WSL2 ile Docker: Neden Hâlâ En Pratik Seçenek?

Windows 11 kullanıyorsanız ve geliştirme ortamınızı “Linux hissiyatı” ile kurmak istiyorsanız, WSL2 (Windows Subsystem for Linux) + Docker ikilisi bugün hâlâ en pratik çözümlerden biri. WSL2, Windows üzerinde gerçek bir Linux çekirdeğiyle çalıştığı için klasik sanal makine kurulumlarına göre daha hızlı başlatma, daha iyi entegrasyon ve daha az uğraş sunuyor. Bu yazıda, WSL2 üzerinde Docker’ı kurup sorunsuz çalıştırmanın yanında, performans ve disk yönetimi gibi can sıkıcı noktaları da ileri seviye ayarlarla toparlayacağız.

Ön Koşullar: Sürüm ve Özellik Kontrolü

Başlamadan önce Windows 11’in güncel olduğundan emin olun. Windows Özellikleri tarafında iki bileşenin etkin olması gerekiyor: Windows Subsystem for Linux ve Virtual Machine Platform. Bunları elle açabilirsiniz; ancak en temiz yöntem, Microsoft’un komutlarıyla ilerlemek.

1) WSL2 Kurulumu ve Varsayılan Sürümü Ayarlama

PowerShell’i Yönetici olarak açın ve şu komutu çalıştırın:

wsl --install

Bu komut çoğu sistemde gerekli bileşenleri açar ve varsayılan bir dağıtım (genellikle Ubuntu) kurar. Kurulum sonrası yeniden başlatma istenirse sistemi yeniden başlatın. Ardından WSL sürümünü 2 yapın:

wsl --set-default-version 2

Kurulu dağıtımların WSL2’de olup olmadığını görmek için:

wsl -l -v

Eğer dağıtımınız WSL1 görünüyorsa şu şekilde WSL2’ye yükseltebilirsiniz:

wsl --set-version Ubuntu 2

2) Docker Desktop Kurulumu ve WSL Entegrasyonu

Windows tarafında Docker kullanmanın en sorunsuz yolu, Docker Desktop kurmaktır. Kurulum sırasında “Use WSL 2 instead of Hyper-V” benzeri bir seçenek görürseniz WSL2’yi tercih edin. Kurulum bittikten sonra Docker Desktop’ı açın ve ayarlardan Resources > WSL Integration bölümüne gidin.

Burada, Docker’ın hangi Linux dağıtımıyla entegre çalışacağını seçebilirsiniz. Örneğin Ubuntu kullanıyorsanız ilgili dağıtımı etkinleştirin. Bu adım, “Docker komutlarını Ubuntu içinde çalıştırayım” senaryosunun anahtarıdır.

3) Ubuntu İçinde Docker’ın Çalıştığını Doğrulama

Ubuntu terminalinizi (WSL) açın ve şu komutlarla kontrol edin:

docker version

docker run --rm hello-world

İkinci komut, küçük bir imaj indirip çalıştırır ve kurulumun doğru yapıldığını net şekilde gösterir. Eğer “Cannot connect to the Docker daemon” hatası alırsanız, Docker Desktop’ın açık olduğundan ve WSL Integration’ın seçili dağıtım için etkinleştirildiğinden emin olun.

4) Performans: Dosyaları Nereye Koymalısınız?

WSL2 + Docker’da performansı belirleyen en kritik noktalardan biri dosya sistemidir. Projenizi /home/kullaniciadi/proje gibi WSL’in Linux dosya sistemi içinde tutmak genellikle çok daha hızlıdır. Projeyi /mnt/c altında (Windows diskine bağlı konumda) çalıştırmak, özellikle Node.js, PHP Composer veya yoğun küçük dosya erişimi yapan işler için belirgin yavaşlık yaratabilir.

Özet kural: Kod ve bağımlılıklar Linux tarafında, Windows tarafıyla paylaşım gerekiyorsa bunu kontrollü yapın.

5) İleri Ayar: WSL Kaynak (CPU/RAM) Sınırı ve Disk Yönetimi

WSL2 varsayılan olarak sistem kaynaklarını dinamik kullanır. Ancak Docker ile birlikte yoğun işlerde RAM tüketimi artabilir. Bunu kontrol etmek için Windows kullanıcı klasörünüzde .wslconfig adında bir dosya oluşturup şu örnek ayarları ekleyebilirsiniz:

[wsl2]
memory=6GB
processors=4
swap=2GB

Değişikliklerin uygulanması için WSL’i kapatın:

wsl --shutdown

Bir diğer yaygın sorun, Docker imajları ve katmanları arttıkça disk tüketiminin şişmesidir. WSL2 sanal diski zamanla büyür ve her zaman otomatik küçülmez. Gereksiz imajları temizlemek için periyodik olarak şu komutlar işinize yarar:

docker system prune -a

Bu komut kullanılmayan imajları da sileceği için üretim benzeri ortamlarda dikkatli olun. Düzenli temizlik, WSL2 disk şişmesi ve gereksiz alan kullanımını azaltır.

6) Sık Karşılaşılan Hatalar ve Hızlı Çözümler

Docker daemon’a bağlanamıyorum: Docker Desktop açık mı, WSL Integration doğru dağıtımda etkin mi kontrol edin. Gerekirse wsl --shutdown sonrası Docker’ı yeniden başlatın.

İmaj indirme çok yavaş: Kurumsal ağ veya proxy varsa Docker Desktop proxy ayarlarını kontrol edin. DNS problemlerinde WSL içinde resolv.conf ayarları bazen etkili olur.

Dosya erişimi yavaş: Projeyi /mnt/c yerine Linux dosya sistemine taşıyın. Özellikle bağımlılık klasörleri (node_modules gibi) için fark dramatiktir.

Sonuç: Stabil Bir Geliştirme Ortamı İçin Kısa Reçete

Windows 11’de WSL2 ile Docker kurmak artık birkaç adımda tamamlanıyor; asıl farkı yaratan kısım doğru entegrasyon ve performans ayarları. Projeyi Linux tarafında tutmak, WSL kaynaklarını mantıklı sınırlandırmak ve Docker temizliğini düzenli yapmak; hem hız hem stabilite açısından günlük geliştirme akışını ciddi şekilde iyileştirir. Bu kurulumla, Windows konforunu bozmadan Linux tabanlı bir geliştirme düzenine geçebilirsiniz.

21 Aralık 2025 Pazar

Windows 11’de WSL2 ile Docker Kurulumu ve Geliştirici Ortamını Hızlandırma Rehberi

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.

20 Aralık 2025 Cumartesi

Windows 11’de WSL2 ile Docker Kurulumu ve Performans İyileştirme Rehberi (2025)

WSL2 + Docker Neden Hâlâ En Mantıklı Kombinasyon?

Windows 11 üzerinde yazılım geliştirenlerin büyük bölümü iki farklı dünyayı aynı anda yönetiyor: Windows uygulamaları ve Linux tabanlı geliştirme araçları. WSL2 (Windows Subsystem for Linux 2), Linux çekirdeğini sanallaştırma katmanıyla çalıştırdığı için klasik WSL1’e göre çok daha hızlı dosya sistemi ve ağ performansı sunuyor. Docker ise mikro servis, test otomasyonu ve yerel geliştirme ortamlarını standartlaştırma konusunda artık neredeyse “varsayılan” araç. Bu rehberde Windows 11’de WSL2 ile Docker kurulumunu adım adım yapacak, ardından sık görülen darboğazları performans odaklı ayarlarla gidereceğiz.

Ön Koşullar: Sürüm ve Özellik Kontrolü

Kuruluma başlamadan önce Windows 11’in güncel olduğundan emin olun. WSL2 için sanallaştırma desteği (BIOS/UEFI üzerinden VT-x/AMD-V) açık olmalı. Kurumsal cihazlarda bu ayar kilitli olabilir; böyle bir durumda BT birimiyle görüşmek gerekir. Ayrıca Hyper-V ve Virtual Machine Platform özellikleri WSL2 için önemlidir.

Windows özelliklerini hızlıca etkinleştirmek için PowerShell’i yönetici olarak açıp şu komutları kullanabilirsiniz:

1) wsl --install

Bu komut WSL’yi kurar, varsayılan olarak bir Linux dağıtımı (genelde Ubuntu) yükler ve gerekli bileşenleri etkinleştirmeye çalışır. Kurulum sonrası yeniden başlatma istenirse ertelemeyin.

WSL2 Dağıtımını Kurma ve Güncelleme

Yeniden başladıktan sonra Ubuntu (veya seçtiğiniz dağıtım) ilk açılışta kullanıcı adı ve parola oluşturmanızı ister. Ardından Linux paketlerini güncellemek iyi bir alışkanlıktır:

sudo apt update && sudo apt upgrade -y

WSL sürümünü kontrol etmek için Windows tarafında şu komutu çalıştırabilirsiniz:

wsl -l -v

Dağıtımınızın “VERSION” sütununda 2 yazdığını görmelisiniz. Eğer 1 ise:

wsl --set-version Ubuntu 2

Docker Desktop Kurulumu ve WSL2 Entegrasyonu

Docker’ı Windows 11’de en sorunsuz yöntemle kullanmak için güncel Docker Desktop tercih ediliyor. Kurulum sırasında “Use WSL 2 instead of Hyper-V” benzeri seçenekler görürseniz WSL2’yi seçin. Kurulumdan sonra Docker Desktop’ı açın ve şu ayarları kontrol edin:

Settings > General: WSL2 tabanlı motor etkin olmalı.

Settings > Resources > WSL Integration: Ubuntu dağıtımınız için entegrasyonu açın.

Bu aşamadan sonra Ubuntu terminalinde Docker komutlarının çalıştığını doğrulayın:

docker version

Test amaçlı basit bir container çalıştırabilirsiniz:

docker run --rm hello-world

Performans İyileştirme: En Kritik 3 Nokta

1) Proje dosyalarını doğru yerde tutun (çok önemli). WSL2 ile çalışırken kaynak kodunuzu Windows dosya sisteminde (ör. C:\Users\...) tutup WSL üzerinden erişmek I/O gecikmesini artırabilir. Docker build süreleri ve testler gereksiz uzar. En iyi pratik, projeyi Linux dosya sisteminde tutmaktır: /home/kullanici/proje. VS Code kullanıyorsanız “Remote - WSL” eklentisiyle projeyi doğrudan WSL içinde açarak hem hızlı hem stabil bir akış elde edersiniz.

2) WSL kaynak limitlerini ayarlayın. Varsayılan durumda WSL2, sistem kaynaklarını dinamik yönetir; bu bazen RAM’in gereksiz şişmesine ya da CPU’nun dengesiz kullanımına yol açabilir. Windows kullanıcı dizininizde bir .wslconfig dosyası oluşturarak limit koyabilirsiniz:

[wsl2]
memory=8GB
processors=4
swap=2GB

Değerleri sisteminize göre uyarlayın. Ardından WSL’yi kapatıp açın: wsl --shutdown. Bu ayar, Docker build ve compose senaryolarında daha öngörülebilir performans sağlar.

3) Docker Desktop kaynaklarını gereksiz şişirmeyin. Docker Desktop tarafında da CPU/RAM limitleri bulunur. Eğer WSL2 motorunu kullanıyorsanız çoğu yük WSL2 üzerinde koşar; yine de ağır compose projelerinde denge önemlidir. Gereğinden fazla CPU vermek her zaman hızlandırmaz; özellikle aynı anda IDE, tarayıcı ve test araçları çalışıyorsa sistem geneli yavaşlayabilir.

Sık Karşılaşılan Sorunlar ve Hızlı Çözümler

Docker komutu bulunamıyor: WSL Integration açık mı kontrol edin. Docker Desktop çalışıyor olmalı. Ubuntu içinde docker komutu hâlâ yoksa dağıtım entegrasyonu kapalı olabilir.

Port çakışması (ör. 3000/5432): Aynı portu kullanan başka bir servis Windows tarafında çalışıyor olabilir. docker ps ile container portlarını kontrol edin ve gerekirse docker compose yapılandırmanızda portları değiştirin.

Dosya izleme (hot reload) yavaş: Proje Windows dizinindeyse WSL içine taşıyın. Ayrıca Node.js gibi araçlarda dosya izleme ayarlarını WSL için optimize eden parametreler gerekebilir, ancak çoğu durumda dosya konumu değişikliği sorunu kökten çözer.

Sonuç: Daha Hızlı Build, Daha Stabil Geliştirme

Windows 11’de WSL2 ile Docker kullanmak, doğru kurulum ve birkaç kritik ayarla hem hızlı hem de üretken bir geliştirme ortamı sunuyor. En büyük kazanım genellikle “dosyaları doğru yerde tutmak” ile geliyor: kaynak kodu WSL dosya sistemine taşıdığınızda build süreleri kısalır, container içi I/O performansı hissedilir biçimde artar. Üstüne .wslconfig ile kaynakları dengelediğinizde sistem stabilitesi belirgin şekilde iyileşir. Eğer yerel geliştirme ortamınızı modernleştirmek istiyorsanız, bu kombinasyon 2025’te de en pratik seçeneklerden biri olmaya devam ediyor.