Debug delle applicazioni in un contenitore Docker localeDebugging apps in a local Docker container

PanoramicaOverview

Visual Studio Tools per Docker consente di sviluppare e convalidare l'applicazione in locale in un contenitore Docker. di Linux.The Visual Studio Tools for Docker provides a consistent way to develop in and validate your application locally in a Linux Docker container. Non è necessario riavviare il contenitore ogni volta che si esegue una modifica del codice.You don't have to restart the container each time you make a code change. Questo articolo illustra come usare la funzionalità di modifica e aggiornamento per avviare un'app Web ASP.NET Core in un contenitore Docker locale, apportare le modifiche necessarie e quindi aggiornare il browser per visualizzare tali modifiche.This article illustrates how to use the "Edit and Refresh" feature to start an ASP.NET Core Web app in a local Docker container, make any necessary changes, and then refresh the browser to see those changes. Illustra inoltre come impostare i punti di interruzione per il debug.This article also shows you how to set breakpoints for debugging.

Nota

Il supporto del contenitore di Windows sarà disponibile nelle versioni futureWindows Container support will be coming in a future release

PrerequisitiPrerequisites

È necessario che siano installati gli strumenti seguenti.The following tools must be installed.

Per eseguire i contenitori Docker in locale, è necessario un client di Docker locale.To run Docker containers locally, you'll need a local docker client. È possibile usare la casella degli strumenti di Docker, che richiede la disabilitazione di Hyper-V, o in alternativa Docker per Windows, che usa Hyper-V e richiede Windows 10.You can use the Docker Toolbox, which requires Hyper-V to be disabled, or you can use Docker for Windows, which uses Hyper-V, and requires Windows 10.

Nella casella degli strumenti di Docker è necessario configurare il client di DockerIf using Docker Toolbox, you'll need to configure the Docker client

1. Creare un'app Web1. Create a web app

  1. Nel menu di Visual Studio selezionare File > Nuovo > Progetto.From the Visual Studio menu, select File > New > Project.
  2. Nella sezione Modelli della finestra di dialogo Nuovo progetto selezionare Visual C# > Web.Under the Templates section of the New Project dialog box, select Visual C# > Web.
  3. Selezionare ASP.NET Core Web Application (.NET Core)(applicazione Web ASP.NET Core (.NET Core).Select ASP.NET Core Web Application (.NET Core).
  4. Assegnare un nome alla nuova applicazione (o accettare quello predefinito), quindi selezionare OK.Give your new application a name (or take the default) and select OK.
  5. In ASP.NET Core 1.1 Templates (Modelli ASP.NET Core 1.1) selezionare Applicazione Web e quindi OK.Under ASP.NET Core 1.1 Templates, select Web Application and select OK.

2. Aggiungere il supporto di Docker2. Add Docker support

  1. In Esplora soluzioni di Visual Studio fare clic con il pulsante destro del mouse sul progetto e scegliere Aggiungi > Supporto Docker dal menu di scelta rapida.In the Visual Studio Solution Explorer, right-click the project and select Add > Docker Support from the context menu.

    Aggiungere il menu di scelta rapida Supporto Docker

  2. L'aggiunta del supporto Docker a un progetto Web ASP.NET Core comporta l'aggiunta al progetto di vari file relativi a Docker, inclusi file di Docker-Compose, script di distribuzione Windows PowerShell e file delle proprietà Docker.Adding Docker support to an ASP.NET Core web project results in the addition of several Docker-related files being added to the project, including Docker-Compose files, deployment Windows PowerShell scripts, and Docker property files.

    File Docker aggiunti al progetto

3. Modificare il codice e aggiornarlo3. Edit your code and refresh

Per eseguire rapidamente l'iterazione delle modifiche, è possibile avviare l'applicazione in un contenitore e continuare ad apportare modifiche, visualizzandole come si farebbe con IIS Express.To quickly iterate changes, you can start your application within a container, and continue to make changes, viewing them as you would with IIS Express.

  1. Impostare la configurazione della soluzione su Debug e premere <CTRL + F5> per creare l'immagine Docker ed eseguirla localmente.Set the Solution Configuration to Debug and press <CTRL + F5> to build your docker image and run it locally.

    Una volta che l'immagine del contenitore è stata compilata ed è in esecuzione in un contenitore Docker, Visual Studio avvierà l'App Web nel browser predefinito.Once the container image has been built and is running in a Docker container, Visual Studio will launch the Web app in your default browser. Se si usa il browser Microsoft Edge o se si verificano problemi, vedere la sezione relativa alla risoluzione dei problemi .If you are using the Microsoft Edge browser or otherwise have errors, see Troubleshooting section.

  2. Passare alla pagina About, da dove verranno apportate le modifiche.Go to the About page, which is where we're going to make our changes.
  3. Tornare a Visual Studio e aprire Views\Home\About.cshtml.Return to Visual Studio and open Views\Home\About.cshtml.
  4. Aggiungere il contenuto HTML seguente alla fine del file e salvare le modifiche.Add the following HTML content to the end of the file and save the changes.

    <h1>Hello from a Docker Container!</h1>
    
  5. Visualizzare la finestra di output e, quando viene completata la compilazione di .NET e vengono visualizzate queste righe, tornare al browser e aggiornare la pagina About.Viewing the output window, when the .NET build is completed and you see these lines, switch back to your browser and refresh the About page.

    Now listening on: http://*:80
    Application started. Press Ctrl+C to shut down
    
  6. Le modifiche sono state applicate.Your changes have been applied!

4. Eseguire il debug con punti di interruzione4. Debug with breakpoints

Spesso è necessario analizzare le modifiche in modo più approfondito, sfruttando le funzionalità di debug di Visual Studio.Often, changes will need further inspection, leveraging the debugging features of Visual Studio.

  1. Tornare a Visual Studio e aprire Controllers\HomeController.csReturn to Visual Studio and open Controllers\HomeController.cs
  2. Sostituire il contenuto del metodo About() con quanto riportato di seguito:Replace the contents of the About() method with the following:

    string message = "Your application description page from within a Container";
    ViewData["Message"] = message;
    
  3. Impostare un punto di interruzione a sinistra della riga string message.Set a breakpoint to the left of the string message... line.
  4. Premere <F5> per avviare il debug.Hit <F5> to start debugging.
  5. Accedere alla pagina About per raggiungere il punto di interruzione.Navigate to the About page to hit your breakpoint.
  6. Passare a Visual Studio per visualizzare il punto di interruzione ed esaminare il valore del messaggio.Switch to Visual Studio to view the breakpoint, and inspect the value of message.

RiepilogoSummary

Con Docker Tools for Visual Studio 2015si ottiene la produttività tipica del lavoro in locale, con la realtà produttiva offerta dallo sviluppo in un contenitore Docker.With Visual Studio 2015 Tools for Docker, you can get the productivity of working locally, with the production realism of developing within a Docker container.

risoluzione dei problemiTroubleshooting

Risoluzione dei problemi di sviluppo di Docker in Visual StudioTroubleshooting Visual Studio Docker Development

Altre informazioni su Docker con Visual Studio, Windows e AzureMore about Docker with Visual Studio, Windows, and Azure

Altri strumenti di DockerVarious Docker tools

Some great docker tools (Importanti strumenti di Docker, blog di Steve Lasker)Some great docker tools (Steve Lasker's blog)

Articoli utiliGood articles

Introduction to Microservices from NGINX (Introduzione ai microservizi di NGINX)Introduction to Microservices from NGINX

PresentazioniPresentations