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.