Alıştırma - Var olan bir Docker görüntüsünü alma ve yerel ortamda dağıtma
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
Docker'ı bilgisayarınızda başlatın.
Yerel bilgisayarınızda bir komut istemi penceresi açın.
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
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.
Ö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
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:
Yerel Docker kayıt defterindeki kapsayıcıyı inceleme
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.
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>
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
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
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>
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
Bilgisayarınızda kullanılabilir durumdaki görüntüleri listeleyin. Çıktıda örnek deposu gösterilmelidir.
docker image ls
Görüntüyü kayıt defterinden kaldırın.
docker image rm mcr.microsoft.com/dotnet/samples:aspnetapp
Çı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