Giriş
Windows Subsystem for Linux (WSL) üzerinde Docker ya da diğer üçüncü parti araçlar olmadan doğrudan Linux konteynerlerini çalıştırmak artık mümkün. Microsoft'un WSL Container adı verilen yeni özelliği, bu ihtiyacı karşılayan bir public preview sürümünde kullanıma sunuldu. Bu özellik sayesinde, geliştiriciler ve sistem yöneticileri, Windows üzerinde yerel olarak konteynerleri oluşturabilir, yönetebilir ve çalıştırabilirler. Bu makalede, WSL Container'ın kurulumundan başlayarak, temel yeteneklerine, kurumsal entegrasyon noktalarına ve dikkat edilmesi gereken sınırlamalara kadar tüm detayları bulabilirsiniz.
WSL Container Nedir?
WSL Container, Windows Subsystem for Linux'un yerleşik bir parçası olarak sunulan ve Docker Desktop, Podman Desktop ya da diğer üçüncü parti konteyner runtime'ları gerektirmeden Linux tabanlı konteynerleri çalıştırmayı sağlayan bir özelliktir. Bu özellik iki ana bileşenden oluşmaktadır:
- wslc.exe: Komut satırından konteynerleri yönetmek için kullanılan komut satırı aracı.
- Container API (NuGet paketi): C, C++ ve C# geliştiricilerinin konteynerleri programatik olarak yönetmesine olanak tanıyan API.
Özellikler ve Avantajlar
WSL Container'ın sunduğu temel özellikler şunlardır:
- Docker'sız Konteyner Yönetimi: Docker Desktop'a ihtiyaç duymadan konteynerleri çalıştırma ve yönetme imkanı.
- Düşük Kaynak Tüketimi: Doğrudan WSL üzerinde çalıştığı için ekstra bir runtime yükü olmadan daha verimli çalışır.
- Windows ve Linux Entegrasyonu: Windows dosya sistemi ve Linux konteynerleri arasında sorunsuz veri paylaşımı.
- Geliştirici Deneyimi: Visual Studio ve diğer IDE'ler ile entegrasyon sağlayarak geliştirme sürecini kolaylaştırma.
- Kurumsal Kullanım: Active Directory, Group Policy ve diğer kurumsal yönetim araçlarıyla uyumlu çalışma.
Kurulum Adımları
WSL Container'ı kullanmaya başlamadan önce, aşağıdaki ön koşulların sağlandığından emin olun:
- Windows 10 veya 11 (22H2 veya üzeri).
- WSL 2'nin kurulu ve etkin olması.
- Linux dağıtımı olarak Ubuntu, Debian veya diğer desteklenen bir dağıtımın WSL'de yüklü olması.
Adım 1: WSL 2'nin Kurulumu ve Yapılandırılması
Windows PowerShell'i yönetici olarak açın ve aşağıdaki komutu çalıştırın:
wsl --installBu komut, varsayılan olarak WSL 2'yi ve Ubuntu dağıtımını kuracaktır. Eğer başka bir dağıtım kullanmak istiyorsanız, aşağıdaki komutla kurabilirsiniz:
wsl --install -d <DağıtımAdı>WSL 2'nin varsayılan sürüm olduğunu doğrulamak için:
wsl --set-default-version 2WSL'i başlatın ve tercih ettiğiniz Linux dağıtımını açın:
wsl -d Ubuntu
Adım 2: WSL Container Özelliğinin Etkinleştirilmesi
WSL Container özelliği, Windows'un Windows Subsystem for Linux bileşeni içinde yer aldığı için ek bir kurulum gerektirmez. Ancak, bu özelliğin etkinleştirilmiş olduğundan emin olun. Aşağıdaki adımları izleyin:
Windows arama çubuğuna
Windows Featuresyazın ve Windows Features Turn On or Off seçeneğine tıklayın.Windows Subsystem for Linux ve Virtual Machine Platform seçeneklerinin işaretli olduğundan emin olun. Eğer işaretli değilse, işaretleyin ve OK butonuna tıklayın.
Bilgisayarı yeniden başlatın.
Adım 3: wslc.exe Komut Satırı Aracının Kurulumu
WSL Container'ı yönetmek için kullanılan wslc.exe aracı, Microsoft'un resmi GitHub deposundan indirilebilir. Aşağıdaki adımları izleyin:
Microsoft'un WSL-Container GitHub deposunu ziyaret edin.
En son sürümü indirin ve sisteminize kurun.
Kurulum tamamlandıktan sonra, komut satırını açın ve aşağıdaki komutu çalıştırarak kurulumu doğrulayın:
wslc --version
Temel Komutlar ve Kullanım
WSL Container'ı kullanmaya başlamak için aşağıdaki temel komutları öğrenmeniz gerekir:
Konteyner Yönetimi
# Yeni bir konteyner oluşturma
wslc create --name my-container --image ubuntu:latest
# Konteynerı başlatma
wslc start my-container
# Çalışan konteynerları listeleme
wslc list
# Konteyner hakkında detaylı bilgi alma
wslc inspect my-container
# Konteynerı durdurma
wslc stop my-container
# Konteynerı silme
wslc delete my-container
Görüntü Yönetimi
# Mevcut görüntüleri listeleme
wslc images
# Yeni bir görüntü indirme
wslc pull ubuntu:latest
# Görüntüyü silme
wslc rmi ubuntu:latest
Geliştirici Entegrasyonu
WSL Container, C, C++ ve C# geliştiricileri için bir NuGet paketi olarak sunulan bir API aracılığıyla programatik erişim sağlar. Bu API sayesinde, geliştiriciler konteynerleri doğrudan kodlarından yönetebilirler.
NuGet Paketinin Kurulumu
Visual Studio'da aşağıdaki adımları izleyerek NuGet paketini kurabilirsiniz:
Visual Studio'yu açın ve projenizi oluşturun.
Projeye sağ tıklayın ve Manage NuGet Packages seçeneğine tıklayın.
Araç çubuğunda Browse sekmesine tıklayın ve
Microsoft.WSL.Containerpaketini arayın.Paketi projenize ekleyin ve gerekli adımları izleyin.
Temel API Kullanımı (C# Örneği)
using Microsoft.WSL.Container;
// Yeni bir konteyner oluşturma
var container = new WSLContainer("my-container", "ubuntu:latest");
container.Create();
// Konteynerı başlatma
container.Start();
// Konteyner hakkında bilgi alma
var info = container.Inspect();
Console.WriteLine(info.Name);
// Konteynerı durdurma
container.Stop();
// Konteynerı silme
container.Delete();
Kurumsal Entegrasyon
WSL Container, kurumsal ortamlarda da kullanılabilir. Aşağıdaki noktalara dikkat edilmesi gerekir:
Active Directory ve Kimlik Doğrulama
WSL Container, Windows Active Directory ile entegre çalışabilir. Bu sayede, kurumsal kimlik doğrulama sistemlerini kullanarak konteynerlere erişim sağlanabilir. Bunun için aşağıdaki adımları izleyin:
Windows bilgisayarınızın Active Directory domain'ine dahil olun.
WSL Container'ı kullanırken, konteyner içinde çalışan uygulamaların Active Directory kimlik doğrulamasını desteklediğinden emin olun.
Group Policy ile Yönetim
WSL Container, Windows Group Policy aracılığıyla yönetilebilir. Bu sayede, kurumsal politikalar doğrultusunda konteynerlerin oluşturulması ve çalıştırılması kontrol edilebilir. Aşağıdaki adımları izleyin:
gpedit.msckomutunu çalıştırarak Group Policy Editor'i açın.Computer Configuration > Administrative Templates > Windows Components > Windows Subsystem for Linux yolunu izleyin.
WSL Container ile ilgili politikaları yapılandırın.
Sınırlamalar ve Dikkat Edilmesi Gerekenler
Önemli Uyarı: WSL Container henüz public preview aşamasındadır. Bu nedenle, bazı özellikler eksik olabilir veya stabil olmayabilir. Üretim ortamlarında kullanmadan önce iyice test edin.
Desteklenen Dağıtımlar
WSL Container, aşağıdaki Linux dağıtımlarında desteklenmektedir:
- Ubuntu
- Debian
- Kali Linux
- Alpine Linux
Diğer dağıtımlar için destek sınırlı olabilir.
Konteyner Ağı
WSL Container, konteynerler için varsayılan olarak bir NAT ağı kullanır. Bu, konteynerlerin yerel ağa doğrudan erişimini sınırlayabilir. Eğer konteynerlerin yerel ağa erişmesi gerekiyorsa, aşağıdaki adımları izleyin:
# Konteyner ağı yapılandırmasını değiştirme
wslc network create --driver=bridge --subnet=192.168.1.0/24
# Konteynerı yeni ağa bağlama
wslc network connect my-network my-container
Depolama ve Performans
WSL Container, konteyner verilerini WSL'in varsayılan depolama konumunda saklar. Bu, performans açısından bazı sınırlamalara neden olabilir. Eğer yüksek performans gerektiren uygulamalar çalıştırıyorsanız, konteyner verilerini farklı bir disk konumuna taşıyabilirsiniz:
# Konteyner verilerini yeni konuma taşıma
wsl --export Ubuntu ubuntu_backup.tar
wsl --import Ubuntu C:\wsl\new-location ubuntu_backup.tar --version 2
Sonuç
WSL Container, Docker Desktop gibi üçüncü parti araçlara bağımlı olmadan Linux konteynerlerini Windows üzerinde çalıştırmak için güçlü bir çözüm sunar. Özellikle geliştiriciler ve sistem yöneticileri için oldukça kullanışlı olan bu özellik, kurulum ve yönetim kolaylığıyla dikkat çekmektedir. Ancak, henüz public preview aşamasında olduğu için bazı sınırlamalar ve eksiklikler bulunmaktadır. Bu nedenle, üretim ortamlarında kullanmadan önce iyice test edilmesi önemlidir. WSL Container'ın gelişimini yakından takip etmek ve yeni özellikleri denemek için Microsoft'un resmi dokümantasyonunu ve GitHub deposunu inceleyebilirsiniz.



