ASP.NET Core ile Visual Studio kapsayıcı araçlarıVisual Studio Container Tools with ASP.NET Core

Visual Studio 2017 ve üzeri sürümleri, .NET Core 'u hedefleyen ASP.NET Core Kapsayıcılı uygulama oluşturma, hata ayıklama ve çalıştırma desteği sağlar.Visual Studio 2017 and later versions support building, debugging, and running containerized ASP.NET Core apps targeting .NET Core. Hem Windows hem de Linux kapsayıcıları desteklenir.Both Windows and Linux containers are supported.

Görüntüleme veya indirme örnek kodu (nasıl indirileceğini)View or download sample code (how to download)

ÖnkoşullarPrerequisites

Yükleme ve kurulumInstallation and setup

Docker yüklemesi için öncelikle Docker for Windows bilgileri gözden geçirin: ' İ yüklemeden öncebilmeniz gerekenler.For Docker installation, first review the information at Docker for Windows: What to know before you install. Ardından, Windows Için Docker'ı yüklersiniz.Next, install Docker For Windows.

Docker for Windows içindeki paylaşılan sürücüler , birim eşlemesini ve hata ayıklamayı destekleyecek şekilde yapılandırılmalıdır.Shared Drives in Docker for Windows must be configured to support volume mapping and debugging. Sistem tepsisinin Docker simgesine sağ tıklayın, Ayarlar' ı seçin ve paylaşılan sürücüler' i seçin.Right-click the System Tray's Docker icon, select Settings, and select Shared Drives. Docker 'ın dosyaları depoladığı sürücüyü seçin.Select the drive where Docker stores files. Uygula'ya tıklayın.Click Apply.

Kapsayıcılar için yerel C sürücüsü paylaşımını seçme iletişim kutusu

İpucu

Visual Studio 2017 sürümleri 15,6 ve sonraki sürümler, paylaşılan sürücülerin yapılandırılmadığı zaman sorar.Visual Studio 2017 versions 15.6 and later prompt when Shared Drives aren't configured.

Docker kapsayıcısına proje eklemeAdd a project to a Docker container

ASP.NET Core bir projeyi Kapsayıcılı hale getirmek için, projenin .NET Core 'u hedeflemesi gerekir.To containerize an ASP.NET Core project, the project must target .NET Core. Hem Linux hem de Windows kapsayıcıları desteklenir.Both Linux and Windows containers are supported.

Bir projeye Docker desteği eklerken, bir Windows veya Linux kapsayıcısı seçin.When adding Docker support to a project, choose either a Windows or a Linux container. Docker ana bilgisayarı aynı kapsayıcı türünü çalıştırıyor olmalıdır.The Docker host must be running the same container type. Çalışan Docker örneğindeki kapsayıcı türünü değiştirmek için, sistem tepsisinin Docker simgesine sağ tıklayın ve Windows kapsayıcılarına geç... ' i seçin veya Linux kapsayıcılarına geç.. ..To change the container type in the running Docker instance, right-click the System Tray's Docker icon and choose Switch to Windows containers... or Switch to Linux containers....

Yeni uygulamaNew app

ASP.NET Core Web uygulaması proje şablonlarıyla yeni bir uygulama oluştururken Docker desteğini etkinleştir onay kutusunu seçin:When creating a new app with the ASP.NET Core Web Application project templates, select the Enable Docker Support check box:

Docker desteğini etkinleştir onay kutusu

Hedef çerçeve .NET Core ise, Işletim sistemi açılır listesi bir kapsayıcı türü seçimine izin verir.If the target framework is .NET Core, the OS drop-down allows for the selection of a container type.

Mevcut uygulamaExisting app

.NET Core 'u hedefleyen ASP.NET Core projeleri için, araç aracılığıyla Docker desteği eklemenin iki seçeneği vardır.For ASP.NET Core projects targeting .NET Core, there are two options for adding Docker support via the tooling. Visual Studio 'da projeyi açın ve aşağıdaki seçeneklerden birini belirleyin:Open the project in Visual Studio, and choose one of the following options:

  • Proje menüsünden Docker desteği ' ni seçin.Select Docker Support from the Project menu.
  • Çözüm Gezgini projeye sağ tıklayın veDocker desteği Ekle > ' yi seçin.Right-click the project in Solution Explorer and select Add > Docker Support.

Visual Studio kapsayıcı araçları, .NET Framework hedefleme ASP.NET Core var olan bir projeye Docker eklemeyi desteklemez.The Visual Studio Container Tools don't support adding Docker to an existing ASP.NET Core project targeting .NET Framework.

Dockerfile genel bakışDockerfile overview

Bir Dockerfile, son bir Docker görüntüsü oluşturmak için tarif, proje köküne eklenir.A Dockerfile, the recipe for creating a final Docker image, is added to the project root. İçindeki komutları anlamak için Dockerfile başvurusuna bakın.Refer to Dockerfile reference for an understanding of the commands within it. Bu belirli Dockerfile , dört farklı, adlandırılmış derleme aşamaları ile çok aşamalı bir yapı kullanır:This particular Dockerfile uses a multi-stage build with four distinct, named build stages:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.1 AS base
WORKDIR /app
EXPOSE 59518
EXPOSE 44364

FROM mcr.microsoft.com/dotnet/core/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 , Microsoft/DotNet görüntüsünü temel alır.The preceding Dockerfile is based on the microsoft/dotnet image. Bu temel görüntü, ASP.NET Core çalışma zamanı ve NuGet paketlerini içerir.This base image includes the ASP.NET Core runtime and NuGet packages. Paketler, başlangıç performansını geliştirmek için derlenen tek zaman (JıT).The packages are just-in-time (JIT) compiled to improve startup performance.

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.When the new project dialog's Configure for HTTPS check box is checked, the Dockerfile exposes two ports. HTTP trafiği için bir bağlantı noktası kullanılır; diğer bağlantı noktası HTTPS için kullanılır.One port is used for HTTP traffic; the other port is used for HTTPS. Onay kutusu işaretli değilse, HTTP trafiği için tek bir bağlantı noktası (80) gösterilir.If the check box isn't checked, a single port (80) is exposed for HTTP traffic.

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0 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 , Microsoft/aspnetcore görüntüsünü temel alır.The preceding Dockerfile is based on the microsoft/aspnetcore image. Bu temel görüntüde, başlangıç performansını geliştirmek için tek seferlik (JıT) derlenen ASP.NET Core NuGet paketleri bulunur.This base image includes the ASP.NET Core NuGet packages, which are just-in-time (JIT) compiled to improve startup performance.

Bir uygulamaya kapsayıcı Orchestrator desteği eklemeAdd container orchestrator support to an app

Visual Studio 2017, tek kapsayıcı düzenleme çözümü olarak Docker Compose 15,7 veya önceki bir sürümü destekler.Visual Studio 2017 versions 15.7 or earlier support Docker Compose as the sole container orchestration solution. Docker Compose yapıtlar,Docker desteği Ekle > aracılığıyla eklenir.The Docker Compose artifacts are added via Add > Docker Support.

Visual Studio 2017 sürümleri 15,8 veya üzeri bir düzenleme çözümünü yalnızca sorulduğunda ekleyin.Visual Studio 2017 versions 15.8 or later add an orchestration solution only when instructed. Çözüm Gezgini ' de projeye sağ tıklayın vekapsayıcı Orchestrator desteği Ekle > ' yi seçin.Right-click the project in Solution Explorer and select Add > Container Orchestrator Support. İki farklı seçenek sunulur: Docker Compose ve Service Fabric.Two different choices are offered: Docker Compose and Service Fabric.

Docker ComposeDocker Compose

Visual Studio kapsayıcı araçları, aşağıdaki dosyalarla çözüme bir Docker-Compose projesi ekler:The Visual Studio Container Tools add a docker-compose project to the solution with the following files:

  • Docker-Compose. dcproj – projeyi temsil eden dosya.docker-compose.dcproj – The file representing the project. Kullanılacak işletim <DockerTargetOS> sistemini belirleyen bir öğesi içerir.Includes a <DockerTargetOS> element specifying the OS to be used.
  • . dockerıgnore – Derleme bağlamı oluştururken hariç tutulacak dosya ve Dizin desenlerini listeler..dockerignore – Lists the file and directory patterns to exclude when generating a build context.
  • Docker-Compose. yıml – , sırasıyla ve docker-compose build docker-compose runile oluşturulan ve çalıştıran görüntülerin koleksiyonunu tanımlamak için kullanılan temel Docker Compose dosyasıdır.docker-compose.yml – The base Docker Compose file used to define the collection of images built and run with docker-compose build and docker-compose run, respectively.
  • Docker-Compose. override. yıml – isteğe bağlı bir dosya, Docker Compose tarafından okunan hizmetler için yapılandırma geçersiz kılmalarıyla.docker-compose.override.yml – An optional file, read by Docker Compose, with configuration overrides for services. Visual Studio bu docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" dosyaları birleştirmek için yürütülür.Visual Studio executes docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" to merge these files.

Docker-Compose. yml dosyası, proje çalışırken oluşturulan görüntünün adına başvurur:The docker-compose.yml file references the name of the image that's created when the project runs:

version: '3.4'

services:
  hellodockertools:
    image: ${DOCKER_REGISTRY}hellodockertools
    build:
      context: .
      dockerfile: HelloDockerTools/Dockerfile

Yukarıdaki örnekte, image: hellodockertools uygulama hata ayıklama modunda çalıştırıldığında hellodockertools:dev görüntüyü oluşturur.In the preceding example, image: hellodockertools generates the image hellodockertools:dev when the app runs in Debug mode. Uygulama yayın modunda çalıştığında görüntüoluşturulur.hellodockertools:latestThe hellodockertools:latest image is generated when the app runs in Release mode.

Görüntü kayıt defterine itilse, görüntü adını Docker Hub Kullanıcı adı dockerhubusername/hellodockertools(örneğin,) ile önek yapın.Prefix the image name with the Docker Hub username (for example, dockerhubusername/hellodockertools) if the image is pushed to the registry. Alternatif olarak, yapılandırmaya bağlı olarak, görüntü adını özel kayıt defteri URL 'sini (örneğin privateregistry.domain.com/hellodockertools,) içerecek şekilde değiştirin.Alternatively, change the image name to include the private registry URL (for example, privateregistry.domain.com/hellodockertools) depending on the configuration.

Yapı yapılandırmasına (örneğin, hata ayıklama veya sürüm) göre farklı davranışlar istiyorsanız, yapılandırmaya özgü Docker-Compose dosyaları ekleyin.If you want different behavior based on the build configuration (for example, Debug or Release), add configuration-specific docker-compose files. Dosyalar derleme yapılandırmasına göre adlandırılmalıdır (örneğin, Docker-Compose. vs. Debug. yıml ve Docker-Compose. vs. Release. yıml) ve Docker-Compose-override. yıml dosyasıyla aynı konuma yerleştirildi.The files should be named according to the build configuration (for example, docker-compose.vs.debug.yml and docker-compose.vs.release.yml) and placed in the same location as the docker-compose-override.yml file.

Yapılandırmaya özgü geçersiz kılma dosyalarını kullanarak, hata ayıklama ve yayın derleme yapılandırmaları için farklı yapılandırma ayarları (ortam değişkenleri veya giriş noktaları gibi) belirtebilirsiniz.Using the configuration-specific override files, you can specify different configuration settings (such as environment variables or entry points) for Debug and Release build configurations.

Service FabricService Fabric

Temel önkoşullaraek olarak, Service Fabric Orchestration çözümü aşağıdaki önkoşulları ister:In addition to the base Prerequisites, the Service Fabric orchestration solution demands the following prerequisites:

Service Fabric, Windows 'da yerel geliştirme kümesinde Linux kapsayıcıları çalıştırmayı desteklemez.Service Fabric doesn't support running Linux containers in the local development cluster on Windows. Proje zaten bir Linux kapsayıcısı kullanıyorsa, Visual Studio Windows kapsayıcılarına geçiş yapmanızı ister.If the project is already using a Linux container, Visual Studio prompts to switch to Windows containers.

Visual Studio kapsayıcı araçları aşağıdaki görevleri yapılır:The Visual Studio Container Tools do the following tasks:

  • Çözüme bir <Project_Name>uygulaması Service Fabric uygulama projesi ekler.Adds a <project_name>Application Service Fabric Application project to the solution.

  • ASP.NET Core projesine bir dockerfile ve . dockerıgnore dosyası ekler.Adds a Dockerfile and a .dockerignore file to the ASP.NET Core project. ASP.NET Core projesinde zaten bir Dockerfile varsa, dockerfile. orijinalolarak yeniden adlandırılır.If a Dockerfile already exists in the ASP.NET Core project, it's renamed to Dockerfile.original. Aşağıdakine benzer yeni bir Dockerfileoluşturulur:A new Dockerfile, similar to the following, is created:

    # See https://aka.ms/containerimagehelp for information on how to use Windows Server 1709 containers with Service Fabric.
    # FROM microsoft/aspnetcore:2.0-nanoserver-1709
    FROM microsoft/aspnetcore:2.0-nanoserver-sac2016
    ARG source
    WORKDIR /app
    COPY ${source:-obj/Docker/publish} .
    ENTRYPOINT ["dotnet", "HelloDockerTools.dll"]
    
  • ASP.NET Core projenin <IsServiceFabricServiceProject> . csproj dosyasına bir öğe ekler:Adds an <IsServiceFabricServiceProject> element to the ASP.NET Core project's .csproj file:

    <IsServiceFabricServiceProject>True</IsServiceFabricServiceProject>
    
  • ASP.NET Core projesine bir PackageRoot klasörü ekler.Adds a PackageRoot folder to the ASP.NET Core project. Klasör, yeni hizmet için hizmet bildirimini ve ayarlarını içerir.The folder includes the service manifest and settings for the new service.

Daha fazla bilgi için bkz. bir Windows kapsayıcısında .NET uygulamasını Azure Service Fabric dağıtma.For more information, see Deploy a .NET app in a Windows container to Azure Service Fabric.

Hata ayıklamaDebug

Araç çubuğundaki hata ayıklama açılır listesinden Docker ' ı seçin ve uygulamada hata ayıklamayı başlatın.Select Docker from the debug drop-down in the toolbar, and start debugging the app. Çıkış penceresinin Docker görünümü aşağıdaki işlemleri gerçekleşirken gösterir:The Docker view of the Output window shows the following actions taking place:

  • Microsoft/DotNet çalışma zamanı görüntüsünün 2,1-aspnetcore-Runtime etiketi elde edilir (zaten önbellekte değilse).The 2.1-aspnetcore-runtime tag of the microsoft/dotnet runtime image is acquired (if not already in the cache). Görüntüde ASP.NET Core ve .NET Core çalışma zamanları ile ilişkili Kitaplıklar yüklenir.The image installs the ASP.NET Core and .NET Core runtimes and associated libraries. Üretimde ASP.NET Core uygulamaları çalıştırmak için en iyi duruma getirilmiştir.It's optimized for running ASP.NET Core apps in production.
  • Ortam değişkeni kapsayıcı içinde olarak Development ayarlanır. ASPNETCORE_ENVIRONMENTThe ASPNETCORE_ENVIRONMENT environment variable is set to Development within the container.
  • Dinamik olarak atanan iki bağlantı noktası sunulur: bir HTTP ve diğeri HTTPS için.Two dynamically assigned ports are exposed: one for HTTP and one for HTTPS. Localhost 'a atanan bağlantı noktası docker ps komutla sorgulanabilir.The port assigned to localhost can be queried with the docker ps command.
  • Uygulama kapsayıcıya kopyalanır.The app is copied to the container.
  • Varsayılan tarayıcı, dinamik olarak atanan bağlantı noktası kullanılarak kapsayıcıya eklenmiş hata ayıklayıcı ile başlatılır.The default browser is launched with the debugger attached to the container using the dynamically assigned port.

Uygulamanın elde edilen Docker görüntüsü devolarak etiketlendi.The resulting Docker image of the app is tagged as dev. Görüntü, Microsoft/DotNet temel görüntüsünün 2,1-aspnetcore-Runtime etiketine dayalıdır.The image is based on the 2.1-aspnetcore-runtime tag of the microsoft/dotnet base image. Komutunu Paket Yöneticisi Konsolu (PMC) penceresinde çalıştırın. docker imagesRun the docker images command in the Package Manager Console (PMC) window. Makinedeki görüntüler görüntülenir:The images on the machine are displayed:

REPOSITORY        TAG                     IMAGE ID      CREATED         SIZE
hellodockertools  dev                     d72ce0f1dfe7  30 seconds ago  255MB
microsoft/dotnet  2.1-aspnetcore-runtime  fcc3887985bb  6 days ago      255MB
  • Microsoft/aspnetcore çalışma zamanı görüntüsü alındı (zaten önbellekte yoksa).The microsoft/aspnetcore runtime image is acquired (if not already in the cache).
  • Ortam değişkeni kapsayıcı içinde olarak Development ayarlanır. ASPNETCORE_ENVIRONMENTThe ASPNETCORE_ENVIRONMENT environment variable is set to Development within the container.
  • 80 numaralı bağlantı noktası, localhost için dinamik olarak atanmış bir bağlantı noktasıyla gösterilir ve eşleştirilir.Port 80 is exposed and mapped to a dynamically assigned port for localhost. Bağlantı noktası Docker ana bilgisayarı tarafından belirlenir ve docker ps komutla sorgulanabilir.The port is determined by the Docker host and can be queried with the docker ps command.
  • Uygulama kapsayıcıya kopyalanır.The app is copied to the container.
  • Varsayılan tarayıcı, dinamik olarak atanan bağlantı noktası kullanılarak kapsayıcıya eklenmiş hata ayıklayıcı ile başlatılır.The default browser is launched with the debugger attached to the container using the dynamically assigned port.

Uygulamanın elde edilen Docker görüntüsü devolarak etiketlendi.The resulting Docker image of the app is tagged as dev. Görüntü, Microsoft/aspnetcore temel görüntüsünü temel alır.The image is based on the microsoft/aspnetcore base image. Komutunu Paket Yöneticisi Konsolu (PMC) penceresinde çalıştırın. docker imagesRun the docker images command in the Package Manager Console (PMC) window. Makinedeki görüntüler görüntülenir:The images on the machine are displayed:

REPOSITORY            TAG  IMAGE ID      CREATED        SIZE
hellodockertools      dev  5fafe5d1ad5b  4 minutes ago  347MB
microsoft/aspnetcore  2.0  c69d39472da9  13 days ago    347MB

Not

Hata ayıklama yapılandırmalarının, yinelemeli deneyim sağlamak için birim bağlama kullanması nedeniyle geliştirme görüntüsünde uygulama içeriği eksik.The dev image lacks the app contents, as Debug configurations use volume mounting to provide the iterative experience. Bir görüntüyü göndermek için yayın yapılandırmasını kullanın.To push an image, use the Release configuration.

docker ps Komutu PMC 'de çalıştırın.Run the docker ps command in PMC. Uygulamanın, kapsayıcıyı kullanarak çalıştığını unutmayın:Notice the app is running using the container:

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

Düzenle ve devam etEdit and continue

Statik dosyalardaki ve Razor görünümlerindeki değişiklikler, derleme adımına gerek kalmadan otomatik olarak güncelleştirilir.Changes to static files and Razor views are automatically updated without the need for a compilation step. Güncelleştirmeyi görüntülemek için değişikliği yapıp tarayıcıyı kaydedin ve yenileyin.Make the change, save, and refresh the browser to view the update.

Kod dosyası değişiklikleri derleme gerektirir ve kapsayıcı içinde Kestrel yeniden başlatılır.Code file modifications require compilation and a restart of Kestrel within the container. Değişikliği yaptıktan sonra, işlemi gerçekleştirmek CTRL+F5 ve uygulamayı kapsayıcı içinde başlatmak için öğesini kullanın.After making the change, use CTRL+F5 to perform the process and start the app within the container. Docker kapsayıcısı yeniden derlenmez veya durdurulmaz.The Docker container isn't rebuilt or stopped. docker ps Komutu PMC 'de çalıştırın.Run the docker ps command in PMC. Özgün kapsayıcının 10 dakikadan önce çalışmaya devam ettiğini fark edin:Notice the original container is still running as of 10 minutes ago:

CONTAINER ID        IMAGE                  COMMAND                   CREATED             STATUS              PORTS                   NAMES
baf9a678c88d        hellodockertools:dev   "C:\\remote_debugge..."   10 minutes ago      Up 10 minutes       0.0.0.0:37630->80/tcp   dockercompose4642749010770307127_hellodockertools_1

Docker görüntülerini yayımlamaPublish Docker images

Uygulamanın geliştirme ve hata ayıklama döngüsünü tamamladıktan sonra, Visual Studio kapsayıcı araçları uygulamanın üretim görüntüsünü oluşturmaya yardımcı olur.Once the develop and debug cycle of the app is completed, the Visual Studio Container Tools assist in creating the production image of the app. Yapılandırma açılır öğesini değiştirerek uygulamayı serbest bırakın ve oluşturun.Change the configuration drop-down to Release and build the app. Araç, Docker Hub 'dan (zaten önbellekte değilse) derleme/yayımlama görüntüsünü alır.The tooling acquires the compile/publish image from Docker Hub (if not already in the cache). Bir görüntü, özel kayıt defterine veya Docker Hub 'ına gönderilebilecek en son etiketle oluşturulur.An image is produced with the latest tag, which can be pushed to the private registry or Docker Hub.

Görüntülerin listesini görmek için bu komutuPMC'deçalıştırın.docker imagesRun the docker images command in PMC to see the list of images. Aşağıdakine benzer bir çıktı görüntülenir:Output similar to the following is displayed:

REPOSITORY        TAG                     IMAGE ID      CREATED             SIZE
hellodockertools  latest                  e3984a64230c  About a minute ago  258MB
hellodockertools  dev                     d72ce0f1dfe7  4 minutes ago       255MB
microsoft/dotnet  2.1-sdk                 9e243db15f91  6 days ago          1.7GB
microsoft/dotnet  2.1-aspnetcore-runtime  fcc3887985bb  6 days ago          255MB
REPOSITORY                  TAG     IMAGE ID      CREATED         SIZE
hellodockertools            latest  cd28f0d4abbd  12 seconds ago  349MB
hellodockertools            dev     5fafe5d1ad5b  23 minutes ago  347MB
microsoft/aspnetcore-build  2.0     7fed40fbb647  13 days ago     2.02GB
microsoft/aspnetcore        2.0     c69d39472da9  13 days ago     347MB

Önceki çıktıda microsoft/aspnetcore listelenen microsoft/aspnetcore-build ve görüntüleri .NET Core 2,1 ' deki görüntülerle değiştirilmiştir. microsoft/dotnetThe microsoft/aspnetcore-build and microsoft/aspnetcore images listed in the preceding output are replaced with microsoft/dotnet images as of .NET Core 2.1. Daha fazla bilgi için bkz. Docker depoları geçiş duyurusu.For more information, see the Docker repositories migration announcement.

Not

Komut docker images , havuz adları ve etiketleri (Yukarıda listelenmeyen) <> olarak tanımlanmış (yukarıda listelenmemiş) bir Aracı görüntüleri döndürür.The docker images command returns intermediary images with repository names and tags identified as <none> (not listed above). Bu adlandırılmamış görüntüler, çok aşamalı derleme dockerfiletarafından üretilir.These unnamed images are produced by the multi-stage build Dockerfile. Son görüntünün—oluşturulması verimliliği artırır ancak değişiklikler gerçekleştiğinde yalnızca gerekli katmanlar yeniden oluşturulur.They improve the efficiency of building the final image—only the necessary layers are rebuilt when changes occur. Ara görüntülere artık gerek kalmadığında Docker rmi komutunu kullanarak bunları silin.When the intermediary images are no longer needed, delete them using the docker rmi command.

Geliştirme görüntüsüne kıyasla üretim veya yayın görüntüsünün boyutunun daha küçük olması için bir beklentisi olabilir.There may be an expectation for the production or release image to be smaller in size by comparison to the dev image. Birim eşleme nedeniyle, hata ayıklayıcı ve uygulama, kapsayıcıda değil, yerel makineden çalıştırılıyor.Because of the volume mapping, the debugger and app were running from the local machine and not within the container. En son görüntü, uygulamayı bir konak makinesinde çalıştırmak için gerekli uygulama kodunu paketlendi.The latest image has packaged the necessary app code to run the app on a host machine. Bu nedenle, Delta uygulama kodunun boyutudur.Therefore, the delta is the size of the app code.

Ek kaynaklarAdditional resources