Alıştırma - Var olan bir Docker görüntüsünü alma ve yerel ortamda dağıtma

Tamamlandı

Kendi Docker görüntülerinizi oluşturup çalıştırmak için önerilen başlangıç noktası, Docker Hub'daki bir görüntüyü alıp yerel bilgisayarınızda çalıştırmaktır.

Şirketin uygulamaları için kavram kanıtı olarak kullanma amacıyla Docker Hub'dan örnek bir görüntü çalıştırmayı denemeye karar veriyorsunuz. Seçtiğiniz görüntü temel bir .NET Core ASP.NET web uygulaması uygular. Docker görüntüsü dağıtmak için bir süreç geliştirdikten sonra şirketinizin kendi web uygulamalarından birini Docker kullanarak çalıştırabileceksiniz.

Bu alıştırmada Docker Hub'daki görüntülerden birini çekecek ve çalıştıracaksınız. Dağıtılan öğeleri anlamanıza yardımcı olması için Docker'ın yerel durumunu inceleyeceksiniz. Son olarak kapsayıcıyı ve görüntüyü bilgisayarınızdan kaldıracaksınız.

Önemli

Bu alıştırmayı Azure'da değil bilgisayarınızda gerçekleştireceksiniz. Bu alıştırma için Docker'ı yerel bilgisayarınıza yüklemeniz gerekmektedir. İndirin: https://hub.docker.com/editions/community/docker-ce-desktop-windows/

Docker Hub'dan örnek uygulamayı çekme ve çalıştırma

  1. Docker'ı bilgisayarınızda başlatın.

  2. Yerel bilgisayarınızda bir komut istemi penceresi açın.

  3. Docker Hub kayıt defterinden ASP.NET Örnek uygulama görüntüsünü çekmek için aşağıdaki kodu girin. Bu görüntü, Microsoft tarafından geliştirilen örnek bir web uygulaması içerir ve Visual Studio'da kullanılabilen varsayılan ASP.NET şablonunu temel alır.

    docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
    
  4. Görüntünün yerel olarak depolandığını doğrulamak için aşağıdaki kodu girin.

    docker image ls
    

    aspnetapp etiketine sahip mcr.microsoft.com/dotnet/samples adlı bir depo görmeniz gerekir.

  5. Örnek uygulamayı başlatmak için aşağıdaki kodu girin. -d bayrağı, bunu etkileşimli olmayan bir arka plan uygulaması olarak çalıştırmaktır. -p bayrağı, oluşturulan kapsayıcıdaki 8080 numaralı bağlantı noktasını yerel olarak 8080 numaralı bağlantı noktasına eşlemektir. Bu ayar, bilgisayarınızda zaten çalışan web uygulamalarıyla çakışmaları önlemeye yöneliktir. Komutun yanıtında örneğe ait uzun bir onaltılık tanımlayıcı bulunacaktır.

    docker run -d -p 8080:8080 mcr.microsoft.com/dotnet/samples:aspnetapp
    
  6. Bir web tarayıcısı açın ve örnek web uygulamasının URL'sini girin: http://localhost:8080. Aşağıdaki ekran görüntüsüne benzer bir sayfa görmeniz gerekir:

    Screenshot of the sample web app running in a browser.

Yerel Docker kayıt defterindeki kapsayıcıyı inceleme

  1. Komut isteminde aşağıdaki komutu çalıştırarak yerel kayıt defterinde çalışan kapsayıcıları görüntüleyin.

    docker ps
    

    Çıkış aşağıdakine benzer görünmelidir:

    CONTAINER ID   IMAGE                                             COMMAND                  CREATED          STATUS          PORTS                  NAMES
    96c851831ade   mcr.microsoft.com/dotnet/samples:aspnetapp   "dotnet aspnetapp.dll"   22 minutes ago   Up 22 minutes   0.0.0.0:8080->80/tcp   eager_montalcini
    

    COMMAND alanı, kapsayıcının dotnet aspnetapp.dll komutuyla başlatıldığını gösterir. Bu komut, .NET Core çalışma zamanını çağırarak aspnetapp.dll (örnek web uygulamasının kodu) içindeki kodu başlatır. PORTS alanı, görüntüdeki 8080 numaralı bağlantı noktasının bilgisayarınızdaki 8080 numaralı bağlantı noktasına eşlendiğini gösterir. STATUS alanı uygulamanın çalışmakta olduğunu gösterir. Kapsayıcının NAME değerini not alın.

  2. Aşağıdaki komutu çalıştırarak Docker kapsayıcısını durdurun ve yer tutucuyu <NAME> önceki komutun çıkış adıyla değiştirin.

    docker container stop <NAME>
    
  3. Kapsayıcının artık çalışmadığını doğrulamak için aşağıdaki komutu çalıştırın. -a bayrağı, komutun yalnızca çalışan kapsayıcıların değil tüm kapsayıcıların durumunu gösterdiğini gösterir. Çıktıda kapsayıcının STATUS değeri Çıktı olarak gösterilmelidir.

    docker ps -a
    
  4. Web tarayıcınızda örnek web uygulamasının sayfasını yenileyin (http://localhost:8080/). Bağlantı Reddedildi hatası döndürmesi gerekir.

Kapsayıcıyı ve görüntüyü yerel kayıt defterinden kaldırma

  1. Kapsayıcı durdurulmasına rağmen yüklenebilir ve yeniden başlatılabilir. Kaldırmak için komut istemi penceresinde aşağıdaki komutu çalıştırın ve yer tutucuyu kapsayıcınızın adıyla değiştirin <NAME> .

    docker container rm <NAME>
    
  2. Aşağıdaki komutu çalıştırarak kapsayıcının kaldırıldığını doğrulayın. Komut sonucunda kapsayıcı listelenmiyor olmalıdır.

    docker ps -a
    
  3. Bilgisayarınızda kullanılabilir durumdaki görüntüleri listeleyin. Çıktıda örnek deposu gösterilmelidir.

    docker image ls
    
  4. Görüntüyü kayıt defterinden kaldırın.

    docker image rm mcr.microsoft.com/dotnet/samples:aspnetapp
    
  5. Çıkışta etiketlenmemiş ve silinmiş çok sayıda öğe listelenmelidir. Görüntüleri yeniden listelemek ve microsoft/dotnet-samples web uygulamasının görüntüsünün kaybolduğunu doğrulamak için aşağıdaki komutu çalıştırın.

    docker image ls