Distribuire un contenitore ASP.NET in un host Docker remoto

Panoramica

Docker è un motore contenitore leggero, simile in qualche modo a una macchina virtuale, che è possibile usare per ospitare applicazioni e servizi. Questa esercitazione illustra come usare l'estensione Visual Studio Tools per Docker per distribuire un'app ASP.NET Core in un host Docker in Azure con PowerShell.

Prerequisiti

Per completare l'esercitazione è necessario quanto segue:

1. Creare un'app Web ASP.NET Core

La procedura seguente illustra la creazione di un'app ASP.NET Core di base che verrà usata in questa esercitazione.

  1. Nel menu di Visual Studio selezionare File > Nuovo > Progetto.
  2. Nella sezione Modelli della finestra di dialogo Nuovo progetto selezionare Visual C# > Web.
  3. Selezionare ASP.NET Core Web Application (.NET Core)(applicazione Web ASP.NET Core (.NET Core).
  4. Assegnare un nome alla nuova applicazione (o accettare quello predefinito), quindi selezionare OK.
  5. In ASP.NET Core 1.1 Templates (Modelli ASP.NET Core 1.1) selezionare Applicazione Web e quindi OK.

2. Aggiungere il supporto di Docker

  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.

    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.

    File Docker aggiunti al progetto

3. Usare lo script di PowerShell DockerTask.ps1

  1. Aprire un prompt dei comandi di PowerShell nella directory radice del progetto.

    PS C:\Src\WebApplication1>
    
  2. La convalida dell'host remoto è in esecuzione. Dovrebbe essere visualizzato lo stato = Running

    docker-machine ls
    NAME         ACTIVE   DRIVER   STATE     URL                        SWARM   DOCKER    ERRORS
    MyDockerHost -        azure    Running   tcp://xxx.xxx.xxx.xxx:2376         v1.10.3
    
  3. Compilare l'app con il parametro -Build

    PS C:\Src\WebApplication1> .\Docker\DockerTask.ps1 -Build -Environment Release -Machine mydockerhost
    
    PS C:\Src\WebApplication1> .\Docker\DockerTask.ps1 -Build -Environment Release 
    
  4. Eseguire l'app usando il parametro -Run

    PS C:\Src\WebApplication1> .\Docker\DockerTask.ps1 -Run -Environment Release -Machine mydockerhost
    
    PS C:\Src\WebApplication1> .\Docker\DockerTask.ps1 -Run -Environment Release 
    

    Una volta completata l'esecuzione di Docker, i risultati visualizzati dovrebbero essere simili ai seguenti:

    Visualizzare l'app