GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

.NET e Docker

.NET e .NET Core (e Windows!) stanno migliorando sempre di più con Docker. Eseguo Docker per Windows poiché supporta sia i contenitori Linux che i contenitori Windows. Hanno sia un canale stabile che Edge. Il canale Edge (Beta) viene aggiornato regolarmente e, di norma, migliora sempre di più nell'anno in cui lo utilizzo.

Come nota a margine leggermente non correlata, sto eseguendo Docker anche sul mio Synology NAS con una serie di container, oltre a .NET Core (il mio Nas è un chip Intel), Minecraft Server, Plex Server e CrashPlan.

NOTA: Docker per Windows richiede Windows 10 Pro a 64 bit e Microsoft Hyper-V. Consulta Cosa sapere prima dell'installazione per un elenco completo dei prerequisiti.

Il team .NET di Microsoft ha ordinato e organizzato i propri file docker. Può sembrare inizialmente il contrario, con molti tag e nomi criptici, ma c'è un metodo chiaro di cui puoi leggere qui.

Pubblicano le loro immagini Docker in alcuni repository diversi su Docker Hub. È importante segmentare le immagini in modo che siano più facili da trovare, sia sul sito Web Docker Hub che con docker search comando.

  • microsoft/dotnet — Immagini .NET Core Runtime e SDK per Linux e Nano Server.
  • microsoft/aspnetcore:immagini ASP.NET Core per Linux e Nano Server.
  • microsoft/aspnetcore-build — Immagini ASP.NET Core per Linux e Nano Server, destinate alla creazione di app.
  • microsoft/dotnet-framework:immagini .NET Framework 3.5 e 4.6.2 per Windows Server Core.
  • microsoft/aspnet:immagini .NET Framework 3.5 e 4.6.2 ASP.NET per Windows Server Core.

Ci sono anche alcuni campioni su:

  • microsoft/dotnet-samples:esempi di .NET Core.
  • microsoft/dotnet-framework-samples:esempi di .NET Framework.

I campioni sono semplicissimi da provare - SMETTI DI LEGGERE E PROVA ORA.;)

Sono sempre impressionato da una bella barra di avanzamento ASCII asincrona. Sono facile da impressionare. Questo è un campione "ciao mondo" con una sorpresa ASCII art. Non ti vizierò.

C:\Users\scott\Desktop> docker run microsoft/dotnet-samples
Unable to find image 'microsoft/dotnet-samples:latest' locally
latest: Pulling from microsoft/dotnet-samples
10a267c67f42: Downloading [========> ] 9.19MB/52.58MB
7e1a7ec87c21: Downloading [======================> ] 10.8MB/18.59MB
923d0cd2ed37: Download complete
7c523004cf83: Downloading [=========> ] 6.144MB/33.07MB
f3582118a43a: Waiting
c27ef6b597a0: Waiting

Tutte le immagini sono gestite e mantenute su GitHub in modo che tu possa essere coinvolto se non stai scavando le immagini oi file.

Una cosa interessante da sottolineare è la differenza tra le immagini di sviluppo e le immagini di produzione, così come le immagini che useresti in situazioni CI/CD (Build Server) per costruire altre immagini. Ecco alcuni esempi da GitHub:

Sviluppo

  • dotnetapp-dev:questo esempio è utile per lo sviluppo e la creazione poiché si basa sull'immagine .NET Core SDK. Esegue dotnet comandi per tuo conto, riducendo il tempo necessario per creare immagini Docker (supponendo che tu apporti modifiche e poi le verifichi in un contenitore, in modo iterativo).

Produzione

  • dotnetapp-prod:questo esempio è utile per la produzione poiché si basa sull'immagine .NET Core Runtime, non sull'immagine più grande di .NET Core SDK. La maggior parte delle app richiede solo il runtime, riducendo le dimensioni dell'immagine dell'applicazione.
  • dotnetapp-selfcontained:questo esempio è utile anche per scenari di produzione poiché si basa su un'immagine del sistema operativo (senza .NET Core). Le app .NET Core autonome includono .NET Core come parte dell'app e non come componente installato centralmente in un'immagine di base.
  • dotnetapp-current:questo esempio illustra come configurare un'applicazione per l'uso dell'immagine .NET Core 1.1. Sia .csproj che Dockerfile sono stati aggiornati per dipendere da .NET Core 1.1. Questo esempio è lo stesso di dotnetapp-prod con l'eccezione di basarsi su una versione successiva di .NET Core.
  • aspnetapp:questo esempio illustra un'app Web ASP.NET Core Dockerizzata

È disponibile un ottimo supporto Docker in VS Code, Visual Studio 2017 e Visual Studio per Mac (il canale di anteprima). Con VS e Docker su Windows puoi persino eseguire F5 (debug) in un contenitore Linux.

Alcuni di voi potrebbero avere app .NET Framework in esecuzione in macchine virtuali che vorresti spostare su un'infrastruttura di container. C'è uno strumento chiamato Image2Docker che Docker mantiene che potrebbe aiutare. Aiuta a migrare le macchine virtuali ai contenitori. Dai un'occhiata al discorso di Image2Docker DockerCon o leggi Docker's Converti server Web ASP.NET in Docker con ImageDocker per saperne di più.

"Nave portacontainer" di Servizio oceanico nazionale della NOAA è concesso in licenza in base a CC BY 2.0

Sponsor: Dai un'occhiata a Seq:semplice registrazione centralizzata, sulla tua infrastruttura, con ottimo supporto per ASP.NET Core e Serilog. Scarica la versione 4.0.


Docker
  1. differenza tra podman e docker.

  2. Installa Docker e WordPress su Ubuntu

  3. Perché Deis e che cos'è?

  4. Rilevamento che un'app .NET Core è in esecuzione in un contenitore Docker e SkippableFacts in XUnit

  5. .NET core X509Store su Linux

.NET Core e Docker

Creazione, esecuzione e test di .NET Core e ASP.NET Core 2.1 in Docker su un Raspberry Pi (ARM32)

Un emulatore GameBoy lato server multigiocatore scritto in .NET Core e Angular

Provare nuove immagini Docker Alpine .NET Core

ZEIT ora distribuisce le app Web ASP.NET Core open source con Docker

Esplorazione di ASP.NET Core con Docker in entrambi i contenitori Linux e Windows