WSL kapsayıcısı ile çalışmaya başlayın

Bu adım adım kılavuz, WSL ile yerleşik olarak gelen kapsayıcı CLI'sini kullanarak wslc.exeWindows üzerinde Linux kapsayıcıları oluşturmaya ve çalıştırmaya başlamanıza yardımcı olur.

wslc.exe kapsayıcılı uygulamalar oluşturmak, göndermek ve çalıştırmak için tanıdık bir CLI sağlar.

WSL kapsayıcılarına genel bakış

Kapsayıcı, uygulamaları oluşturmak, dağıtmak ve çalıştırmak için kullanılan bir araçtır. Kapsayıcılar, geliştiricilerin bir uygulamayı ihtiyaç duyduğu tüm parçalarla (kitaplıklar, çerçeveler, bağımlılıklar vb.) paketlemesini ve hepsini tek bir paket olarak göndermesini sağlar. Kapsayıcı kullanmak, uygulamanın, uygulamanın kodunu yazmak ve test etmek için kullanılan makineden farklı olabilecek özelleştirilmiş ayarlardan veya çalıştıran bilgisayarda önceden yüklenmiş kitaplıklardan bağımsız olarak aynı şekilde çalışmasını sağlar. Bu, geliştiricilerin kodun çalıştırılacağı sistem hakkında endişelenmeden kod yazmaya odaklanmasına izin verir.

Önkoşullar

  • WSL yüklü. En son sürüme sahip olduğunuzdan emin olmak için komutunu çalıştırın wsl --update .
  • Visual Studio Code'u yükleyin(isteğe bağlı). Bu, Linux dağıtımınıza bağlı kapsayıcılı projelerinizi kodlayıp hatalarını ayıklama özelliği de dahil olmak üzere en iyi deneyimi sağlar.
  • Windows Terminali'ni (isteğe bağlı) yükleyin. Bu, aynı arabirimde (Ubuntu, Debian, PowerShell, Azure CLI veya kullanmayı tercih ettiğiniz her şey dahil) birden çok terminali özelleştirme ve açma özelliği dahil olmak üzere en iyi deneyimi sağlar.

wslc'yi yükleme ve doğrulama

wslc.exe WSL'ye dahil olduğundan yüklenecek ayrı bir altyapı yoktur. WSL'nin onu içeren bir sürümüne sahip olduğunuzdan emin olmak için:

  1. Henüz yüklemediyseniz WSL'yi yükleyin, ardından PowerShell'i açıp şunları girerek en son sürüme güncelleştirin:

    wsl --update
    
  2. wslc.exe öğesinin kullanılabilir olduğunu doğrulayın ve aşağıdakini girerek sürümünü kontrol edin:

    wslc version
    
  3. Basit bir yerleşik görüntü çalıştırarak her şeyin düzgün çalışıp çalışmadığını test edin. Görüntü yerel olarak mevcut değilse otomatik olarak çekilir:

    wslc run --rm hello-world
    

    Yüklemenizin düzgün çalıştığını onaylayan bir "Merhaba" iletisi görmeniz gerekir.

Tavsiye

Bilmeniz gereken birkaç yararlı wslc komut aşağıdadır:

  • wslc --help yazarak wslc CLI’sinde kullanılabilen komutları listeleyin.
  • Belirli bir komutun bilgilerini şu şekilde listeleyin: wslc <COMMAND> --help
  • Makinenizdeki görüntüleri şu şekilde listeleyin: wslc image list
  • Makinenizde çalışan kapsayıcıları şu şekilde listeleyin: wslc container list veya tüm kapsayıcıları (durdurulan kapsayıcılar dahil) şu şekilde listeleyin: wslc container list --all
  • Aşağıdakilerle çalışan kapsayıcılarınızın kaynak kullanım istatistiklerini görüntüleyin: wslc stats

İlk konteynerlerinizi çalıştırın

Görüntüleri wslc.exe çekerek, kapsayıcıları ön planda veya arka planda çalıştırabilir, bağlantı noktaları yayımlayabilir ve çalışan kapsayıcılarla etkileşim kurabilirsiniz. PowerShell'den şu komutlardan birkaçını deneyin:

# Run a command in a throwaway container
wslc run --rm -it ubuntu:latest bash -c "echo Hello world from WSL container!"

# Run a web server in the background and publish port 8080 to the container's port 80
wslc run -d --rm -p 8080:80 --name web nginx

# Request content from the running web server
curl localhost:8080

# List the running container
wslc container list

# Run an additional command inside the running container
wslc exec web cat /etc/os-release

# Stop the container
wslc container stop web

nginx kapsayıcısı --rm ile başlatıldığı için durduğunda otomatik olarak kaldırılır.

Kendi konteyner imajınızı oluşturun ve çalıştırın

ile wslc.exeuygulama geliştirmeye başlamak için, projenizi Linux dosya sisteminde düzenleyebilmeniz ve tümleşik terminalden komut çalıştırabilmeniz için wslc birlikte VS Code kullanmanızı öneririz.

Şimdi mevcut bir uygulama projesi için kapsayıcı görüntüsü oluşturalım.

  1. Bu örnekte, Python geliştirme ortamı kurulum belgelerinde Django için Merhaba Dünya öğreticisindeki kaynak kodunu kullanacağız. Kendi proje kaynak kodunuzu kullanmayı tercih ediyorsanız bu adımı atlayabilirsiniz. GitHub'dan HelloWorld-Django web uygulamasını indirmek için bir WSL terminali açın (örneğin Ubuntu) ve şunu girin:

    git clone https://github.com/<username>/helloworld-django.git
    

    Uyarı

    Kodunuzu her zaman araçları kullandığınız dosya sisteminde depolayın. Bu, daha hızlı dosya erişimi performansına neden olur. Bu örnekte, Linux dağıtımı (Ubuntu) kullanıyoruz ve proje dosyalarımızı WSL dosya sisteminde \\wsl$depolamak istiyoruz. Proje dosyalarının Windows dosya sisteminde depolanması, WSL'de Linux araçlarını kullanarak bu dosyalara erişirken işleri önemli ölçüde yavaşlatır.

  2. WSL terminalinizde dizinleri bu projenin kaynak kodu klasörüne değiştirin:

    cd helloworld-django
    
  3. Aşağıdakileri girerek projeyi yerel WSL uzantısı sunucusunda çalışan VS Code'da açın:

    code .
    

    VS Code örneğinizin sol alt köşesindeki yeşil uzak göstergeyi denetleyerek WSL Linux dağıtımınıza bağlandığınızdan emin olun.

    VS Code WSL Uzaktan gösterge

  4. Projenizin köküne, görüntünün nasıl derleneceğini açıklayan bir Containerfile ekleyin. Django örneğinde en azı Containerfile şöyle görünebilir:

    FROM python:3
    WORKDIR /app
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    COPY . .
    EXPOSE 8000
    CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
    
  5. Proje klasöründen (Containerfile öğesini içeren dizinden), imajı wslc build ile daha sonra başvurabileceğiniz bir adla etiketleyerek oluşturun:

    wslc build -t helloworld-django .
    
  6. Görüntülerinizi listeleyerek görüntünün oluşturulduğunu onaylayın:

    wslc image list
    
  7. Yeni oluşturduğunuz imajı bir kapsayıcı olarak çalıştırın; Windows'tan erişebilmeniz için uygulamanın bağlantı noktasını yayımlayın:

    wslc run -d --rm -p 8000:8000 --name django helloworld-django
    
  8. Kapsayıcınızın çalıştığını onaylamak için çalışan kapsayıcıları listeleyin ve günlüklerini denetleyin:

    wslc container list
    wslc container logs django
    
  9. Windows'da bir tarayıcı açın ve uygulamanızın kapsayıcısının içinde çalıştığını görmek için http://localhost:8000/ adresine gidin. Ayrıca kapsayıcının içinde bir komut yürüterek uygulamanın Linux üzerinde çalıştığını onaylayabilirsiniz:

    wslc exec django uname
    

    uname"Linux" sonucu, kapsayıcının WSL 2 Linux çekirdeğinde çalıştığını onaylar.

  10. İşiniz bittiğinde kapsayıcıyı durdurun:

    wslc container stop django
    

Artık WSL 2 destekli wslc.exe kullanarak, VS Code ile birlikte derleyebileceğiniz, çalıştırabileceğiniz, dağıtabileceğiniz veya hata ayıklayabileceğiniz bir Linux kapsayıcısını Windows’ta başarıyla oluşturdunuz ve çalıştırdınız!

Sorun giderme

Kapsayıcıyı veya görüntüyü inceleme

Bir kapsayıcı beklenmedik şekilde davrandığında, inspect ve logs komutları sorunu teşhis etmenize yardımcı olmak için ayrıntılı bilgiler sağlar:

wslc container inspect <container-id>
wslc container logs <container-id>
wslc image inspect <image>

Disk alanını geri kazanma

İmajlar ve durdurulmuş kapsayıcılar disk alanı tüketir. Artık kullanmadığınız kaynakları temizlemek için:

# Remove all stopped containers
wslc container prune

# Remove unused images
wslc image prune

WSL'deki genel sorun giderme sorunlarıyla ilgili daha fazla yardım için Sorun giderme belgesine bakın.

Ek kaynaklar