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

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

  1. Yeni Visual Studio Yeni dosya'>'ı > Project.

  2. Yeni Uygulama iletişim kutusunun Şablonlar bölümünde Visual C# Project Web'i > seçin.

  3. Web ASP.NET Core'ı seçin veya .NET Core yerine .NET Framework kullanmak için Web Uygulaması'ASP.NET seçin.

  4. Yeni uygulamanıza bir ad girin (veya varsayılan değeri alır) ve Tamam'ı seçin.

  5. Web Uygulaması'ı seçin.

  6. Docker Desteğini Etkinleştir onay kutusunu işaretleyin.

    Docker Desteğini Etkinleştir onay kutusunun ekran görüntüsü.

    Ekran görüntüsünde .NET Core; .NET Framework kullanıyorsanız, biraz farklı görünüyor.

  7. İ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.

  1. Yapılandırma açılan listesinde Yayın'a ve uygulamayı derlemeye devam edin.

  2. Çözüm Gezgini'da projenize sağ tıklayın ve Yayımla'yı seçin.

  3. Hedefi yayımla iletişim kutusunda Container Registry seçin.

  4. Yeni Oluştur'u Azure Container Registry yayımla'ya tıklayın.

  5. 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.

    Visual Studio oluştur iletişim kutusunun Azure Container Registry görüntüsü.

  6. 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

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

  1. 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.

  2. Yeni Web uygulaması oluştur ekranında Docker desteğini etkinleştir onay kutusunun seçili olduğundan emin olun.

    Docker desteğini etkinleştir onay kutusunun ekran görüntüsü.

    Ekran görüntüsünde .NET Core gösterilir; .NET Framework kullanıyorsanız, biraz farklı görünür.

  3. 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.

Kapsayıcılar penceresinin ekran görüntüsü.

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.

  1. Yapılandırma açılır öğesini değiştirerek uygulamayı serbest bırakın ve oluşturun.

  2. Çözüm Gezgini ' de projenize sağ tıklayın ve Yayımla' yı seçin.

  3. Yayımla Iletişim kutusunda Docker Container Registry sekmesini seçin.

    Yayımla iletişim kutusunun ekran görüntüsü-Docker Container Registry seçin.

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

    Yayımla iletişim kutusunun ekran görüntüsü-yeni Azure Container Registry oluştur ' a tıklayın.

  5. 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.

    Visual Studio Azure Container Registry oluştur iletişim kutusunun ekran görüntüsü.

  6. Oluştur’a tıklayın. Yayımla iletişim kutusunda artık oluşturulan kayıt defteri görüntülenir.

    Azure Container Registry oluşturulduğunu gösteren Yayımla iletişim kutusunun ekran görüntüsü.

  7. 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.

    Başarılı yayımlama işlemini gösteren ekran görüntüsü.

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

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

  1. 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.

  2. Yeni web uygulaması oluştur ekranında Docker Desteğini Etkinleştir onay kutusunun seçili olduğundan emin olun.

    Docker Desteğini Etkinleştir onay kutusunun ekran görüntüsü.

    Ekran görüntüsünde .NET 6.0; .NET Framework kullanıyorsanız, biraz farklı görünüyor.

  3. İ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.

Kapsayıcılar penceresinin ekran görüntüsü.

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.

  1. Yapılandırma açılan listesinde Yayın'a ve uygulamayı derlemeye devam edin.

  2. Çözüm Gezgini'da projenize sağ tıklayın ve Yayımla'yı seçin.

  3. Yayımla iletişim kutusunda Docker Container Registry seçin.

    Yayımla iletişim kutusunun ekran görüntüsü - Docker Container Registry.

  4. Yeni Oluştur'Azure Container Registry.

    Yayımla iletişim kutusunun ekran görüntüsü - Yeni bir dosya oluştur'Azure Container Registry.

  5. 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.

    Visual Studio oluştur iletişim kutusunun Azure Container Registry görüntüsü.

  6. Oluştur’a tıklayın. Yayımla iletişim kutusunda artık oluşturulan kayıt defteri görüntülenir.

    Oluşturulan ayarları gösteren Yayımla iletişim Azure Container Registry görüntüsü.

  7. 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.

    Başarılı yayımlama işlemini gösteren ekran görüntüsü.

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.

Ek kaynaklar