È semplicissimo iniziare con .NET Core e/o ASP.NET Core con Docker. Se hai installato Docker non è necessario installare nulla per provare .NET Core, ovviamente.
Per eseguire una piccola app console .NET Core:
docker run --rm mcr.microsoft.com/dotnet/core/samples:dotnetapp
E il risultato:
latest: Pulling from dotnet/core/samples
Hello from .NET Core!
...SNIP...
**Environment**
Platform: .NET Core
OS: Linux 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018
Per eseguire un piccolo sito Web ASP.NET Core veloce basta:
docker run -it --rm -p 8000:80 --name aspnetcore_sample mcr.microsoft.com/dotnet/core/samples:aspnetapp
Ed eccolo in esecuzione su localhost:8000
Puoi anche ospitare immagini ASP.NET Core con Docker su HTTPS con questa immagine o eseguire app ASP.NET Core in contenitori di Windows.
Tieni presente che i team Microsoft stanno ora pubblicando le immagini del contenitore nell'MCR (Microsoft Container Registry) in modo che possano usare la rete CDN di Azure ed eseguire il pull più velocemente quando sono più vicini a te a livello globale. Le immagini iniziano su MCR e quindi possono essere inviate in syndication ad altri registri di container.
Seguono i nuovi repo:
- Dipendenze di .NET Core Runtime (solo le cose di cui .NET Core ha bisogno, ma non .NET Core stesso - utili se vuoi distribuire la tua copia e vuoi comunque una piccola dimensione dell'immagine del contenitore)
- Runtime .NET Core (proprio ciò che è necessario per eseguire un'app .NET Core)
- .NET Core SDK (include i compilatori, tutto)
- Runtime ASP.NET Core (tutto ciò di cui hai bisogno per ESEGUIRE la tua app Web ASP.NET Core)
Quando esegui il "docker pull" puoi utilizzare le stringhe di tag per .NET Core e funziona su qualsiasi versione di .NET Core supportata
- SDK:
docker pull mcr.microsoft.com/dotnet/core/sdk:2.1
- Runtime di ASP.NET Core:
docker pull mcr.microsoft.com/dotnet/core/aspnet:2.1
- Runtime .NET Core:
docker pull mcr.microsoft.com/dotnet/core/runtime:2.1
- Dipendenze di runtime .NET Core:
docker pull mcr.microsoft.com/dotnet/core/runtime-deps:2.1
Ad esempio, posso eseguire .NET Core 3.0 SDK e scherzare con esso in questo modo:
docker run -it mcr.microsoft.com/dotnet/core/sdk:3.0
Ho utilizzato Docker per eseguire i miei unit test sul mio sito di podcast all'interno di un contenitore in locale. Quindi monto il volume e scarico i risultati del test in una cartella locale e li ispeziono con Visual Studio
docker build --pull --target testrunner -t podcast:test .
docker run --rm -v c:\github\hanselminutes-core\TestResults:/app/hanselminutes.core.tests/TestResults podcast:test
Posso quindi ospitare il contenitore Docker in Servizio app di Azure per contenitori o piccole istanze fatturate una tantum al secondo con Istanze di contenitore di Azure (ACI).
Hai utilizzato .NET Core in Docker? Come è andata per te?
Sponsor: Gestisci le richieste pull di GitHub direttamente dall'IDE con l'ultimo JetBrains Rider. Anche un profiler delle prestazioni integrato su Windows viene in soccorso.