Hızlı Başlangıç: Visual Studio'da Docker
Visual Studio ile kapsayıcılı ASP.NET Core uygulamaları kolayca derleme, hata ayıklama ve çalıştırma ve bunları Azure Container Registry, Docker Hub, Azure App Service veya kendi kapsayıcı kayıt defterinize yayımlayabilirsiniz. Bu makalede, Azure Container Registry.
Önkoşullar
- Docker Desktop
- Visual Studio Geliştirme, Azure Araçları iş yükü ve/veya .NET Core platformlar arası geliştirme iş yükünün yüklü olduğu 2017 sürümü
- Azure aboneliği olan Azure Container Registry yayımlamak için. Ücretsiz deneme sürümüne kaydolma.
Yükleme ve kurulum
Docker yüklemesi için önce Docker Desktop for Windows: Yüklemeden önce neleri bilmek gerekir? bağlantısına bakın. Ardından Docker Desktop'ı yükleyin.
Docker kapsayıcısı için proje ekleme
Yeni Visual Studio Yeni dosya'>'ı > Project.
Yeni Uygulama iletişim kutusunun Şablonlar bölümünde Visual C# Project Web'i > seçin.
Web ASP.NET Core'ı seçin veya .NET Core yerine .NET Framework kullanmak için Web Uygulaması'ASP.NET seçin.
Yeni uygulamanıza bir ad girin (veya varsayılan değeri alır) ve Tamam'ı seçin.
Web Uygulaması'ı seçin.
Docker Desteğini Etkinleştir onay kutusunu işaretleyin.

Ekran görüntüsünde .NET Core; .NET Framework kullanıyorsanız, biraz farklı görünüyor.
İstediğiniz kapsayıcı türünü seçin (Windows Veya Linux) ve Tamam'a tıklayın.
Dockerfile'a genel bakış
Projede son bir Docker görüntüsü oluşturma tarifi olan Dockerfile oluşturulur. Içindeki komutları anlamak için Dockerfile başvurusuna bakın:
FROM mcr.microsoft.com/dotnet/aspnet:2.1 AS base
WORKDIR /app
EXPOSE 59518
EXPOSE 44364
FROM mcr.microsoft.com/dotnet/sdk:2.1 AS build
WORKDIR /src
COPY HelloDockerTools/HelloDockerTools.csproj HelloDockerTools/
RUN dotnet restore HelloDockerTools/HelloDockerTools.csproj
COPY . .
WORKDIR /src/HelloDockerTools
RUN dotnet build HelloDockerTools.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish HelloDockerTools.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "HelloDockerTools.dll"]
Yukarıdaki Dockerfile dosyası microsoft/aspnetcore görüntüsünü temel almaktadır ve projenizi oluşturma ve kapsayıcıya ekleyerek temel görüntüyü değiştirme yönergelerini içerir. .NET Framework kullanıyorsanız temel görüntü farklı olur.
Yeni proje iletişim kutusunun HTTPS için yapılandır onay kutusu işaretli olduğunda Dockerfile iki bağlantı noktasını kullanıma sağlar. HTTP trafiği için bir bağlantı noktası kullanılır; diğer bağlantı noktası HTTPS için kullanılır. Onay kutusu işaretli değilse, HTTP trafiği için tek bir bağlantı noktası (80) kullanıma hazır olur.
Hata Ayıklama
Araç çubuğundaki hata ayıklama açılan menüsünden Docker'ı seçin ve uygulamada hata ayıklamaya başlayabilirsiniz. Bir sertifikaya güvenme hakkında bir istem ile bir ileti alabilirsiniz; devam etmek için sertifikaya güvenmeyi seçin.
Çıkış penceresi hangi eylemlerin gerçekleştir olduğunu gösterir.
Konsol'Paket Yöneticisi Araçlar menüsünden> NuGet Paket Yöneticisi Konsolu'nu (PMC) Paket Yöneticisi açın.
Uygulamanın sonuçta elde edilen Docker görüntüsü geliştirme olarak etiketlenir. Görüntü, microsoft/dotnet temel görüntüsünün 2.1-aspnetcore-runtime etiketine dayalıdır. Paket Yöneticisi docker images Console (PMC) penceresinde komutunu çalıştırın. Makinede görüntüler görüntülenir:
REPOSITORY TAG IMAGE ID CREATED SIZE
hellodockertools dev d72ce0f1dfe7 30 seconds ago 255MB
microsoft/dotnet 2.1-aspnetcore-runtime fcc3887985bb 6 days ago 255MB
Not
Geliştirme görüntüsü uygulama ikililerini ve diğer içeriği içermez çünkü Hata ayıklama yapılandırmaları, birim bağlamayı kullanarak yeniden düzenleme ve hata ayıklama deneyimi sağlar. Tüm içerikleri içeren bir üretim görüntüsü oluşturmak için Yayın yapılandırmasını kullanın.
docker psPMC'de komutunu çalıştırın. Uygulamanın kapsayıcıyı kullanarak çalıştır):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
baf9a678c88d hellodockertools:dev "C:\\remote_debugge..." 21 seconds ago Up 19 seconds 0.0.0.0:37630->80/tcp dockercompose4642749010770307127_hellodockertools_1
Docker görüntülerini yayımlama
Uygulamanın geliştirme ve hata ayıklama döngüsü tamamlandıktan sonra, uygulamanın üretim görüntüsünü oluşturabilirsiniz.
Yapılandırma açılan listesinde Yayın'a ve uygulamayı derlemeye devam edin.
Çözüm Gezgini'da projenize sağ tıklayın ve Yayımla'yı seçin.
Hedefi yayımla iletişim kutusunda Container Registry seçin.
Yeni Oluştur'u Azure Container Registry yayımla'ya tıklayın.
Yeni bir dosya oluştur içinde istediğiniz değerleri Azure Container Registry.
Ayar Önerilen değer Açıklama DNS Ön Eki Genel olarak benzersiz bir ad Kapsayıcı kayıt defterinizi benzersiz olarak tanımlayan ad. Abonelik Aboneliğinizi seçin Kullanılacak Azure aboneliği. Kaynak Grubu myResourceGroup Kapsayıcı kayıt defterinizin oluşturulacak kaynak grubunun adı. Yeni kaynak grubu oluşturmak Yeni'yi seçin. SKU Standart Kapsayıcı kayıt defterinin hizmet katmanı Kayıt Defteri Konumu Size yakın bir konum Size veya kapsayıcı kayıt defterinizi kullanan diğer hizmetlere yakın bir bölgede konum seçin. 
Oluştur seçeneğine tıklayın
Sonraki adımlar
Artık kapsayıcıyı kayıt defterinden Docker görüntülerini çalıştırabilen herhangi bir ana bilgisayar örneğineAzure Container Instances.
Visual Studio, kapsayıcılı .net, ASP.NET ve ASP.NET Core uygulamaları kolayca oluşturabilir, ayıklayabilir ve çalıştırabilir ve bunları Azure Container Registry, docker Hub, Azure App Service veya kendi kapsayıcı kayıt defterinizde yayımlayabilirsiniz. bu makalede, Azure Container Registry için bir ASP.NET Core uygulaması yayımlayacağız.
Önkoşullar
- Docker Masaüstü
- Web geliştirme, Azure araçları iş yükü ve/veya .net Core platformlar arası geliştirme iş yükü yüklü Visual Studio 2019
- .NET Core ile geliştirme için .NET Core geliştirme araçları
- Bir Azure aboneliği Azure Container Registry yayımlamak için. Ücretsiz deneme Için kaydolun.
Yükleme ve kurulum
docker yüklemesi için önce docker Desktop 'taki bilgileri gözden geçirin Windows: yüklemeden önce bilmeniz gerekenler. Sonra Docker Desktop'ı yükler.
Docker kapsayıcısına proje ekleme
ASP.NET Core web uygulaması şablonunu kullanarak yeni bir proje oluşturun veya .net Core yerine .NET Framework kullanmak istiyorsanız, ASP.NET Web uygulaması (.NET Framework) seçeneğini belirleyin.
Yeni Web uygulaması oluştur ekranında Docker desteğini etkinleştir onay kutusunun seçili olduğundan emin olun.

Ekran görüntüsünde .NET Core gösterilir; .NET Framework kullanıyorsanız, biraz farklı görünür.
istediğiniz kapsayıcı türünü (Windows veya Linux) seçin ve oluştur' a tıklayın.
Dockerfile genel bakış
Bir Dockerfile, son bir Docker görüntüsü oluşturmaya yönelik tarif, projede oluşturulur. İçindeki komutları anlamak için Dockerfile başvurusuna bakın.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
RUN dotnet restore "WebApplication1/WebApplication1.csproj"
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
Yukarıdaki Dockerfile , Microsoft/aspnetcore görüntüsünü temel alır ve projenizi oluşturup kapsayıcıya ekleyerek temel görüntüyü değiştirmeye yönelik yönergeler içerir. .NET Framework kullanıyorsanız, temel görüntü farklı olur.
Yeni proje iletişim kutusunun https Için Yapılandır onay kutusu Işaretlendiğinde, dockerfile iki bağlantı noktasını kullanıma sunar. HTTP trafiği için bir bağlantı noktası kullanılır; diğer bağlantı noktası HTTPS için kullanılır. Onay kutusu işaretli değilse, HTTP trafiği için tek bir bağlantı noktası (80) gösterilir.
Hata Ayıklama
Araç çubuğundaki hata ayıklama açılır listesinden Docker ' ı seçin ve uygulamada hata ayıklamayı başlatın. Bir sertifikaya güvenmek üzere bir istem içeren bir ileti görebilirsiniz. devam etmek için sertifikaya güvenmeyi seçin.
Çıkış penceresinde kapsayıcı araçları seçeneği hangi eylemlerin gerçekleştireceğinizi gösterir. İlk kez, temel görüntünün indirilmesi biraz zaman alabilir, ancak sonraki çalışmalarda çok daha hızlıdır.
Not
Hata ayıklama için bağlantı noktalarını değiştirmeniz gerekiyorsa, bunu Launchsettings. JSON dosyasında yapabilirsiniz. bkz. kapsayıcı başlatma Ayarlar.
Kapsayıcılar penceresi
Visual Studio 2019 sürüm 16,4 veya üzeri bir sürüme sahipseniz, makinenizde çalışan kapsayıcıları ve ayrıca kullanılabilir olan görüntüleri görüntülemek için kapsayıcılar penceresini kullanabilirsiniz.
IDE 'deki arama kutusunu kullanarak kapsayıcılar penceresini açın (kullanmak için CTRL + Q tuşlarına basın), yazın container ve listeden kapsayıcılar penceresini seçin.
Kapsayıcılar penceresini, düzenleyicinin altına ve pencere yerleştirme kılavuzlarını izleyerek, uygun bir yerde bağlayabilirsiniz.
Pencerede, kapsayıcınızı bulun ve ortam değişkenlerini, bağlantı noktası eşlemelerini, günlükleri ve dosya sistemini görüntülemek için her bir sekmede adım adım ilerleyin.

Daha fazla bilgi için bkz. kapsayıcılar penceresini kullanma.
Docker görüntülerini yayımlama
Uygulamanın geliştirme ve hata ayıklama döngüsünü tamamladıktan sonra uygulamanın üretim görüntüsünü oluşturabilirsiniz.
Yapılandırma açılır öğesini değiştirerek uygulamayı serbest bırakın ve oluşturun.
Çözüm Gezgini ' de projenize sağ tıklayın ve Yayımla' yı seçin.
Yayımla Iletişim kutusunda Docker Container Registry sekmesini seçin.

Yeni Azure Container Registry oluştur öğesini seçin.

Yeni Azure Container Registry oluştur ' a istediğiniz değerleri girin.
Ayar Önerilen değer Açıklama DNS Ön Eki Genel olarak benzersiz bir ad Kapsayıcı kayıt defterinizi benzersiz bir şekilde tanımlayan ad. Abonelik Aboneliğinizi seçin Kullanılacak Azure aboneliği. Kaynak Grubu myResourceGroup Kapsayıcı kayıt defterinizin oluşturulacağı kaynak grubunun adı. Yeni kaynak grubu oluşturmak Yeni'yi seçin. SKU Standart Kapsayıcı kayıt defterinin hizmet katmanı Kayıt Defteri Konumu Size yakın bir konum Size yakın bir bölgede veya kapsayıcı kayıt defterinizi kullanacak diğer hizmetlerin yakınında bir konum seçin. 
Oluştur’a tıklayın. Yayımla iletişim kutusunda artık oluşturulan kayıt defteri görüntülenir.

Kapsayıcı görüntünüzü Azure 'daki yeni oluşturulan kayıt defterine yayımlama işlemini gerçekleştirmek için son ' a tıklayın.

Sonraki Adımlar
Artık kapsayıcıyı, kayıt defterinden Docker görüntülerini çalıştırabilen herhangi bir konağa çekebilirsiniz, örneğin Azure Container Instances.
Visual Studio ile kapsayıcılı .NET, ASP.NET ve ASP.NET Core uygulamalarını kolayca derleme, hata ayıklama ve çalıştırma ve bunları Azure Container Registry, Docker Hub, Azure App Service veya kendi kapsayıcı kayıt defterinize yayımlayabilirsiniz. Bu makalede, bir ASP.NET Core uygulamasını Azure Container Registry.
Önkoşullar
- Docker Desktop
- Visual Studio Geliştirme, Azure Araçları iş yükü ve/veya .NET Core platformlar arası geliştirme iş yükü yüklü olarak 2022'ye geçiş
- .NET Core ile geliştirme için .NET Core Geliştirme Araçları
- Azure aboneliği olan Azure Container Registry yayımlamak için. Ücretsiz deneme sürümüne kaydolma.
Yükleme ve kurulum
Docker yüklemesi için önce Docker Desktop for Windows: Yüklemeden önce neleri bilmek gerekir? bağlantısına bakın. Ardından Docker Desktop'ı yükleyin.
Docker kapsayıcısı için proje ekleme
ASP.NET Core Web Uygulaması şablonunu kullanarak yeni bir proje oluşturun veya .NET Core yerine .NET Framework'yi kullanmak için ASP.NET Web Uygulaması (.NET Framework) seçin.
Yeni web uygulaması oluştur ekranında Docker Desteğini Etkinleştir onay kutusunun seçili olduğundan emin olun.

Ekran görüntüsünde .NET 6.0; .NET Framework kullanıyorsanız, biraz farklı görünüyor.
İstediğiniz kapsayıcı türünü seçin (Windows Veya Linux) ve Oluştur'a tıklayın.
Dockerfile'a genel bakış
Projede son bir Docker görüntüsü oluşturma tarifi olan Dockerfile oluşturulur. Içindeki komutları anlamak için Dockerfile başvurusuna bakın:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["WebApplication3/WebApplication3.csproj", "WebApplication3/"]
RUN dotnet restore "WebApplication3/WebApplication3.csproj"
COPY . .
WORKDIR "/src/WebApplication3"
RUN dotnet build "WebApplication3.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication3.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication3.dll"]
Yukarıdaki Dockerfile, Microsoft Container Registry (MCR) .NET 6 görüntü görüntüsünü temel almaktadır ve projenizi oluşturma ve kapsayıcıya ekleyerek temel görüntüyü değiştirme yönergelerini içerir. .NET Framework kullanıyorsanız temel görüntü farklı olur.
Yeni proje iletişim kutusunun HTTPS için yapılandır onay kutusu işaretlendiğinde Dockerfile iki bağlantı noktasını kullanıma sağlar. HTTP trafiği için bir bağlantı noktası kullanılır; diğer bağlantı noktası HTTPS için kullanılır. Onay kutusu işaretli değilse, HTTP trafiği için tek bir bağlantı noktası (80) kullanıma hazır olur.
Hata Ayıklama
Araç çubuğundaki hata ayıklama açılan menüsünden Docker'ı seçin ve uygulamada hata ayıklamaya başlayabilirsiniz. Bir sertifikaya güvenme hakkında bir istem ile bir ileti alabilirsiniz; devam etmek için sertifikaya güvenmeyi seçin.
Çıkış penceresindeki Kapsayıcı Araçları seçeneği hangi eylemlerin gerçekleştir olduğunu gösterir. İlk kez, temel görüntüyü indirmek biraz zaman alsa da sonraki çalıştırmalarda çok daha hızlıdır.
Bina yapıldıktan sonra tarayıcı açılır ve uygulamanın giriş sayfası gösterilir. Tarayıcının adres çubuğunda, hata ayıklama için localhost URL'sini ve bağlantı noktası numarasını görüntüleyebilirsiniz.
Not
Hata ayıklama için bağlantı noktalarını değiştirmek gerekirse bunu launchSettings.json dosyasından da kullanabilirsiniz. Bkz. Kapsayıcı Başlatma Ayarlar.
Kapsayıcılar penceresi
Kapsayıcılar penceresini kullanarak makineniz üzerinde çalışan kapsayıcıların yanı sıra kullanabileceğiniz görüntüleri görüntüebilirsiniz.
IDE'de arama kutusunu kullanarak Kapsayıcılar penceresini açın (kullanmak için Ctrl Q tuşlarına basın), yazın ve listeden + container Kapsayıcılar penceresini seçin.
Kapsayıcılar penceresini düzenleyicinin altında olduğu gibi kullanışlı bir yere, pencere yerleştirme kılavuzlarını kullanarak indirebilirsiniz.
Pencerede kapsayıcınızı bulun ve ortam değişkenlerini, bağlantı noktası eşlemelerini, günlükleri ve dosya sistemi görüntülemek için her sekmede adım adım gidin.

Daha fazla bilgi için bkz. Kapsayıcılar penceresini kullanma.
Docker görüntülerini yayımlama
Uygulamanın geliştirme ve hata ayıklama döngüsü tamamlandıktan sonra, uygulamanın üretim görüntüsünü oluşturabilirsiniz.
Yapılandırma açılan listesinde Yayın'a ve uygulamayı derlemeye devam edin.
Çözüm Gezgini'da projenize sağ tıklayın ve Yayımla'yı seçin.
Yayımla iletişim kutusunda Docker Container Registry seçin.

Yeni Oluştur'Azure Container Registry.

Yeni bir dosya oluştur içinde istediğiniz değerleri Azure Container Registry.
Ayar Önerilen değer Açıklama DNS Ön Eki Genel olarak benzersiz bir ad Kapsayıcı kayıt defterinizi benzersiz olarak tanımlayan ad. Abonelik Aboneliğinizi seçin Kullanılacak Azure aboneliği. Kaynak Grubu myResourceGroup Kapsayıcı kayıt defterinizin oluşturulacak kaynak grubunun adı. Yeni kaynak grubu oluşturmak Yeni'yi seçin. SKU Standart Kapsayıcı kayıt defterinin hizmet katmanı Kayıt Defteri Konumu Size yakın bir konum Size veya kapsayıcı kayıt defterinizi kullanan diğer hizmetlere yakın bir bölgede konum seçin. 
Oluştur’a tıklayın. Yayımla iletişim kutusunda artık oluşturulan kayıt defteri görüntülenir.

Kapsayıcı görüntülerinizi Azure'da yeni oluşturulan kayıt defterine yayımlama işlemini tamamlamak için Son'a tıklayın.
Sonraki adımlar
Artık kapsayıcıyı kayıt defterinden Docker görüntülerini çalıştırabilen herhangi bir ana bilgisayar örneğine Azure Container Instances.