Azure 'da özel kapsayıcı çalıştırma
Azure App Service, Windows'da IIS üzerinde çalışan ASP.NET veya Node.js gibi önceden tanımlı uygulama yığınları sunar. Ancak, önceden yapılandırılmış uygulama yığınları işletim sistemini kilitler ve düşük düzey erişimi engeller. özel Windows kapsayıcıları bu kısıtlamalara sahip değildir ve geliştiricilerin kapsayıcıları tamamen özelleştirmesini ve kapsayıcılı uygulamalara Windows işlevselliğine tam erişim vermesini sağlar.
bu hızlı başlangıçta, bir ASP.NET uygulamasının Visual Studio Azure Container Registry için Windows görüntüde nasıl dağıtılacağı gösterilmektedir. Uygulamayı Azure App Service bir özel kapsayıcıda çalıştırırsınız.
Önkoşullar
Bu öğreticiyi tamamlamak için:
- Docker for Windows'u yükleyin.
- Windows kapsayıcılarını çalıştırmak için Docker’a geçiş yapın.
- ASP.NET ve web geliştirme ve Azure geliştirme iş yükleriyle Visual Studio 2022 ' ü yükler . Visual Studio 2022 Community' de, ASP.NET ve web geliştirme iş yüküyle .NET Framework proje ve öğe şablonları bileşeninin seçildiğinden emin olun. Visual Studio 2022 zaten yüklüyse:
-
güncelleştirmeler için yardım denetle'yi seçerek en son güncelleştirmeleri Visual Studio.
- araçlar > al araçlar ve özellikler ' i seçerek iş yüklerini Visual Studio ekleyin.
-
ASP.NET web uygulaması oluşturma
aşağıdaki adımları izleyerek bir ASP.NET web uygulaması oluşturun:
Visual Studio açın ve sonra yeni proje oluştur' u seçin.
yeni proje oluştur' da, C# için ASP.NET Web uygulaması (.NET Framework) bulun ve seçin ve ardından ileri' yi seçin.
yeni projenizi yapılandır bölümünde, Project adı altında, uygulamayı myfirstazurewebapp olarak adlandırın. Framework altında .NET Framework 4,8 ' i seçin ve ardından oluştur' u seçin.
Azure’a herhangi bir türde ASP.NET web uygulaması dağıtabilirsiniz. Bu hızlı başlangıç için MVC şablonunu seçin.
Kimlik doğrulaması altında hiçbiri' ni seçin. Gelişmiş' ın altında Docker desteği ' ni seçin ve https için Yapılandır seçimini kaldırın. Oluştur’u seçin.
Dockerfile dosyası otomatik olarak açılmazsa Çözüm Gezgini’nden açın.
Desteklenen bir üst görüntüyeihtiyacınız vardır.
FROMsatırını aşağıdaki kod ile değiştirerek üst görüntüyü değiştirin ve dosyayı kaydedin:FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019-
web uygulamasını yerel olarak çalıştırmak için Visual Studio menüsünde hata ayıklama olmadan başlat ' ı seçin.
:::image type="content" source="./media/quickstart-custom-container/local-web-app.png?text=Run app locally" alt-text="Uygulamayı yerel olarak çalıştırma":::
Azure Container Registry'de yayımlama
Çözüm Gezgini, myfirstazurewebapp projesine sağ tıklayın ve Yayımla' yı seçin.
Hedef bölümünde Docker Container Registry öğesini seçin ve ardından İleri' ye tıklayın.
Belirli bir hedefte Azure Container Registry seçin ve ardından İleri' ye tıklayın.
Yayımla' da doğru aboneliğin seçildiğinden emin olun. Kapsayıcı kayıt defterlerinde + Yeni bir Azure Container Registry oluşturmak için düğmeyi seçin.
Yeni oluştur' da, doğru aboneliğin seçildiğinden emin olun. Kaynak grubu altında, Yeni ' yi seçin ve ad için myresourcegroup yazın ve Tamam' ı tıklatın. SKU altında temel' yı seçin. Kayıt defteri konumu altında, kayıt defteri konumunu seçin ve ardından Oluştur' u seçin.
Yayımla' nın altında, Container Registry altında oluşturduğunuz kayıt defteri ' ni seçin ve ardından son' u seçin.
Dağıtımın tamamlanmasını bekleyin. Yayımla sayfası şimdi depo adını gösterir. Depo adını daha sonra kopyalamak için Kopyala düğmesini seçin.
Windows kapsayıcı uygulaması oluşturma
Azure Portal oturum açın.
Azure portalının sol üst köşesinde bulunan Kaynak oluştur öğesini seçin.
Popüler hizmetler altında Web uygulaması altında Oluştur ' u seçin.
Web uygulaması oluştur bölümünde aboneliğinizi ve bir kaynak grubunu seçin. Gerekirse yeni bir kaynak grubu oluşturabilirsiniz.
Win-Container-demo gibi bir uygulama adı sağlayın. işletim sistemi için yayımla ve Windows için docker kapsayıcısı ' nı seçin. Ileri ' yi seçin: devam etmek için Docker .

Görüntü kaynağı Için Docker Hub ' ı seçin ve görüntü ve etiket için Azure Container Registry Yayımla' ya kopyaladığınız depo adını girin.

Web uygulamanız için Azure Container Registry gibi başka bir konumda veya başka özel bir depoda bulunan özel görüntünüz varsa bu adımda yapılandırabilirsiniz.
Gözden geçir ' i ve oluştur ' u seçin ve ardından Azure 'un gerekli kaynakları oluşturmasını bekleyin.
Kapsayıcı uygulamasına göz atma
Azure işlemi tamamlandığında bir bildirim kutusu görüntülenir.

Kaynağa git'e tıklayın.
Bu kaynağa genel bakış bölümünde URL'nin yanındaki bağlantıyı izleyin.
Yeni bir tarayıcı sayfası aşağıdaki sayfada açılır:

Birkaç dakika bekleyin ve varsayılan ASP.NET giriş sayfasını görene kadar tekrar deneyin:

Tebrikler! Azure App Service'te ilk özel Windows kapsayıcınızı çalıştırıyorsunuz.
Kapsayıcı başlangıç günlüklerini inceleme
Windows kapsayıcısının yüklenmesi biraz zaman alabilir. İlerleme durumunu görmek için uygulamanızın adıyla değiştirerek aşağıdaki URL 'ye gidin <app_name> .
https://<app_name>.scm.azurewebsites.net/api/logstream
Akışı yapılan günlükler şuna benzer:
2018-07-27T12:03:11 Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully
Yerel olarak güncelleştirme ve yeniden dağıtma
Visual Studio ' de, Çözüm Gezgini' de görünümler > ana > dizin. cshtml dosyasını açın.
Üst kısımda
<div class="jumbotron">HTML etiketini bulun ve tüm öğeyi aşağıdaki kodla değiştirin:<div class="jumbotron"> <h1>ASP.NET in Azure!</h1> <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p> </div>Azure 'a yeniden dağıtmak için, Çözüm Gezgini ' de myfirstazurewebapp projesine sağ tıklayın ve Yayımla' yı seçin.
Yayımlama sayfasında Yayımla’yı seçin ve yayımlama işleminin tamamlanmasını bekleyin.
App Service’in Docker Hub’dan yeni görüntüyü çekmesini istemek için uygulamayı yeniden başlatın. Portalda uygulama sayfasına dönün, Evet ' e tıklayın > .

Yeniden Kapsayıcı uygulamasına göz atın. Web sayfasını yenilediğinizde, uygulama ilk olarak "Başlangıç" sayfasına geri dönmeli, birkaç dakika sonra ise güncellenmiş web sayfasını tekrar görüntülemelidir.

Sonraki adımlar
Ya da diğer kaynaklara göz atın:
Linux üzerinde App Service.NET, PHP, Node.js ve diğerleri gibi diller için destek ile Linux üzerinde önceden tanımlanmış uygulama yığınları sağlar. Ayrıca web uygulamanızı Azure’da zaten tanımlı olmayan bir uygulama yığınında çalıştırmak için özel bir Docker görüntüsü de kullanabilirsiniz. Bu hızlı başlangıçta, bir Azure Container Registry (ACR) App Service.
Önkoşullar
- Azure hesabı
- Docker
- Visual Studio Code
- VS Code için Azure App Service uzantısı. Azure Hizmet Olarak Platform 'da (PaaS) Linux Web Apps oluşturmak, yönetmek ve dağıtmak için bu uzantıyı kullanabilirsiniz.
- VS Code için Docker uzantısı. Yerel Docker görüntülerinin ve komutlarının yönetimini basitleştirmek ve yerleşik uygulama görüntülerini Azure'a dağıtmak için bu uzantıyı kullanabilirsiniz.
Kapsayıcı kayıt defteri oluşturma
Bu hızlı başlangıçta Azure Container Registry kayıt defteri olarak yeni bir uygulama 2. Diğer kayıt defterlerini kullanabilirsiniz ancak adımlar biraz farklılık gösterebilir.
Hızlı Başlangıç: Azure portal kullanarak özel kapsayıcı kayıt defteri oluşturma yönergelerini izleyerek bir kapsayıcı kayıt Azure portal.
Önemli
Azure kapsayıcı kayıt defterini oluşturmada Yönetici Kullanıcı seçeneğini Etkinleştir olarak ayarlasanız emin olun. Bunu, kayıt defteri sayfasının Erişim anahtarları bölümünden de Azure portal. Bu ayar, erişim App Service gereklidir. Yönetilen kimlik için bkz. ACR'den dağıtma öğreticisi.
Oturum açın
Visual Studio Code'u başlatın.
Etkinlik Çubuğunda Azure logosunuseçin, APP SERVICE gezginine gidin, azure'da oturum açın'ı seçin ve yönergeleri izleyin.

Alttaki Durum Çubuğu'nda Azure hesabı e-posta adresinizi doğrulayın. APP SERVICE gezgininde aboneliğinizin görüntüleniyor olması gerekir.
Etkinlik Çubuğunda Docker logosunu seçin. KAYıT DEFTERleri gezgininde, oluşturduğunuz kapsayıcı kayıt defterinin görüntülendiğinden emin olun.

Önkoşulları denetleme
Docker'ın yüklü ve çalışıyor olduğunu doğrulayın. Aşağıdaki komut, çalışıyorsa Docker sürümünü görüntüler.
docker --version
Görüntü oluşturma ve oluşturma
- Bu Visual Studio Code boş bir klasör açın ve adlı bir dosya
Dockerfileekleyin. Dockerfile dosyasında, istediğiniz dil çerçevesine göre içeriği yapıştırın:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts
ENV PORT 8080
EXPOSE 8080
ENV ASPNETCORE_URLS "http://*:${PORT}"
ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]
Bu Dockerfile dosyasında üst görüntü, veri depolamanın yerleşik .NET kapsayıcılarından App Service. Bunun kaynak dosyalarını GenerateDockerFiles/dotnetcore altında Azure-App-Service/ImageBuilder GitHubdeposunda bulabilirsiniz. Dockerfile dosyası basit bir .NET uygulamasını içine /defaulthome/hostingstart kopyalar. Dockerfile dosyanız yalnızca bu uygulamayı başlatır.
Komut Paleti'netıklayın ve Docker Images: Build Image yazın. Komutu çalıştırmak için Enter yazın.
Görüntü etiketi kutusunda, istediğiniz etiketi şu biçimde belirtin: , burada, oluşturduğunuz kapsayıcı
<acr-name>.azurecr.io/<image-name>/<tag><acr-name>kayıt defterinin adıdır. Enter tuşuna basın.Görüntü, bina tamam olduğunda IMAGES gezgininin üst kısmında Yenile'ye tıklayın ve görüntünün başarıyla eklendiğinden emin olun.

Kapsayıcı kayıt defterine dağıtma
Etkinlik Çubuğunda Docker simgesine tıklayın. IMAGES gezgininde, az önce ekleyebilirsiniz.
Görüntüyü genişletin, istediğiniz etikete sağ tıklayın ve Anındat'a tıklayın.
Görüntü etiketinin ile başladığından emin olun ve
<acr-name>.azurecr.ioEnter tuşuna basın.Görüntüyü Visual Studio Code kapsayıcı kayıt defterinize itişini tamamlayan kayıt defterleri gezgininin üst kısmında Yenile'ye tıklayın ve görüntünün başarıyla itilmiş olduğunu doğrulayın.

App Service’e dağıtma
- KAYıT DEFTERleri gezgininde, görüntüyü genişletin, etiketine sağ tıklayın ve Görüntüyü Azure App Service.
- Bir abonelik, genel olarak benzersiz bir uygulama adı, bir kaynak grubu ve bir uygulama planı seçmek için istemleri App Service izleyin. Fiyatlandırma katmanı ve size yakın bir bölge için B1 Temel'i seçin.
Dağıtımdan sonra, uygulamanıza üzerinden http://<app-name>.azurewebsites.net kullanılabilir.
Kaynak Grubu, Azure'daki tüm uygulama kaynaklarının adlandırılmış bir koleksiyonudur. Örneğin, Kaynak Grubu bir web sitesine, veritabanına ve Azure İşlevi'ne başvuru içerebilir.
App Service Planı, web sitenizi barındırmak için kullanılacak fiziksel kaynakları tanımlar. Bu hızlı başlangıçta Linux altyapısında temel barındırma planı kullanılır; bu da sitenin diğer web sitelerinin yanı sıra bir Linux makinede barındıracak olduğu anlamına gelir. Temel plan ile başlarsanız, ölçeğini Azure portal kullanarak makinede çalışan tek site sizinki olacak şekilde ölçeklendirebilirsiniz. Fiyatlandırma için bkz. App Service fiyatlandırması.
Web sitesine göz atma
Çıkış panelinde dağıtım işlemlerinin durumu gösterilir. İşlem tamamlandığında, açılır bildirimde Siteyi Aç'a tıklayın ve siteyi tarayıcınızda açın.
Sonraki adımlar
Tebrikler, bu hızlı başlangıçyı başarıyla tamamladınız.
Uygulama App Service her başlatıldığında kapsayıcı kayıt defterinden çeker. Görüntülerinizi yeniden oluşturmanız gerekirse kapsayıcı kayıt defterinize itmeniz gerekir ve uygulama yeniden başlatıldığında güncelleştirilmiş görüntüyü çeker. Uygulamanıza güncelleştirilmiş görüntüyü hemen çekmesi için yeniden başlatın.
Diğer Azure uzantıları:
- Cosmos DB
- Azure İşlevleri
- Azure CLI Araçları
- Azure Resource Manager Araçları
- Azure Araçları uzantı paketi yukarıdaki tüm uzantıları içerir.