2 Ocak 2026 Cuma

Windows 11’de WSL 2 ile Docker Desktop Kullanmadan Docker Çalıştırma (Adım Adım Rehber)

Docker Desktop olmadan neden Docker?

Windows 11’de Docker kullanmak isteyenlerin ilk karşılaştığı çözüm genellikle Docker Desktop oluyor. Ancak lisans koşulları, arka planda tükettiği kaynaklar ve zaman zaman “WMI/Hyper-V/servis” kaynaklı sorunlar nedeniyle daha hafif ve kontrol edilebilir bir kurulum tercih edilebilir. Bu yazıda, WSL 2 üzerinde Ubuntu (veya benzeri bir dağıtım) kurup, Docker Engine’i doğrudan Linux tarafında çalıştırarak Windows’ta Docker deneyimini nasıl elde edeceğinizi anlatıyorum. Sonuçta konteynerlar Linux çekirdeği üzerinde, daha “doğal” bir şekilde çalışır; siz de Windows’tan terminal ve IDE ile yönetirsiniz.

Ön koşullar

Bu rehber Windows 11 içindir ve WSL 2 gerektirir. Yönetici yetkisi olan bir Windows hesabı işinizi kolaylaştırır. Ayrıca sanallaştırmanın BIOS/UEFI tarafında açık olması (Intel VT-x/AMD-V) önemlidir. Adımlara başlamadan önce, Windows Update’in güncel olması da olası WSL hatalarını azaltır.

1) WSL 2 ve Ubuntu kurulumu

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

wsl --install

Bu komut genellikle WSL’yi etkinleştirir ve varsayılan bir Linux dağıtımı kurar. Eğer dağıtım seçmek isterseniz, mevcut dağıtımları listeleyebilirsiniz:

wsl --list --online

Ardından örneğin Ubuntu kurmak için:

wsl --install -d Ubuntu

Kurulum sonrası Ubuntu ilk kez açıldığında sizden bir Linux kullanıcı adı ve parola belirlemeniz istenir. Bu kullanıcı, Docker komutlarını daha sonra “sudo” ile çalıştırmanız gereken temel kullanıcı olacaktır.

2) Docker Engine’i WSL içinde kurma

Ubuntu terminali açıldıktan sonra önce paket listesini güncelleyin:

sudo apt update && sudo apt upgrade -y

Docker’ın resmi deposunu eklemek en sorunsuz yoldur. Gerekli paketleri kurun:

sudo apt install -y ca-certificates curl gnupg

Ardından Docker GPG anahtarını ve repo bilgisini ekleyin (Ubuntu sürümünüze göre uyumlu şekilde):

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 Engine ve gerekli bileşenleri kurun:

sudo apt update

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

3) WSL’de Docker servisinin çalıştırılması

WSL, klasik Linux dağıtımları gibi her zaman systemd ile başlamayabilir. Güncel Windows 11 ve WSL sürümlerinde systemd desteği var; bunu etkinleştirmek için Ubuntu içinde şu dosyayı oluşturun/düzenleyin:

sudo nano /etc/wsl.conf

İçine şunu ekleyin:

[boot]
systemd=true

Kaydedip çıkın. Sonra Windows tarafında WSL’yi yeniden başlatın:

wsl --shutdown

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

sudo systemctl enable docker

sudo systemctl start docker

sudo systemctl status docker

4) Sudo’suz Docker kullanmak (opsiyonel ama pratik)

Her seferinde “sudo” yazmamak için kullanıcıyı docker grubuna ekleyebilirsiniz:

sudo usermod -aG docker $USER

Değişikliğin geçerli olması için Ubuntu oturumunu kapatıp açın. Ardından test edin:

docker run --rm hello-world

Bu komut başarıyla çalışıyorsa Docker Engine WSL içinde hazır demektir.

5) Docker Compose ve örnek proje

Docker Compose artık çoğu kurulumda eklenti olarak gelir. Sürümü kontrol edin:

docker compose version

Hızlı bir örnek olarak Nginx ayağa kaldırabilirsiniz:

docker run --rm -p 8080:80 nginx

Windows’ta tarayıcıdan http://localhost:8080 açtığınızda Nginx sayfasını görmeniz gerekir. Bu, WSL-Linux konteyner ağının Windows’a düzgün biçimde köprülenebildiğini de doğrular.

Performans ve dosya sistemi ipuçları

WSL 2 ile Docker kullanırken en kritik noktalardan biri proje dosyalarının nerede tutulduğudur. Yoğun dosya erişimi yapan Node.js, Python veya PHP projelerinde, kaynak kodunu WSL dosya sistemi içinde (ör. /home/kullanici/proje) tutmak genellikle çok daha hızlıdır. Windows sürücülerine (ör. /mnt/c) yerleştirilmiş projeler bazı senaryolarda belirgin yavaşlayabilir. IDE kullanıyorsanız Visual Studio Code’un Remote - WSL eklentisiyle projeyi WSL içinde açmak hem hız hem de araç uyumluluğu açısından iyi bir çözümdür.

Sık karşılaşılan sorunlar

“Cannot connect to the Docker daemon” hatası alırsanız önce Docker servisinin çalıştığını doğrulayın: systemctl status docker. systemd etkin değilse /etc/wsl.conf ayarını kontrol edin ve wsl --shutdown ile WSL’yi tamamen kapatıp açın.

Port çakışması durumunda (ör. 8080 doluysa) farklı bir port seçin: -p 8081:80. Ayrıca Windows güvenlik duvarı ve kurumsal ağ politikaları bazı port erişimlerini kısıtlayabilir.

Sonuç

Bu yöntemle Windows 11 üzerinde Docker Desktop kurmadan, daha minimal bir kurulumla Docker Engine’i WSL 2 içinde çalıştırabilirsiniz. Özellikle geliştirici makinesinde kaynak tüketimini azaltmak, lisans tartışmalarına takılmamak ve Linux’a daha yakın bir çalışma ortamı elde etmek isteyenler için oldukça mantıklı bir seçenek. Kurulum tamamlandığında hem docker hem de docker compose komutlarıyla modern konteyner iş akışınızı rahatça sürdürebilirsiniz.

Hiç yorum yok: