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

Come eseguire un'app .NET in Docker

Docker è un servizio di containerizzazione, utilizzato per l'esecuzione di applicazioni in ambienti isolati con tutte le dipendenze e il codice necessari per funzionare. Può eseguire tutti i tipi di applicazioni, inclusi i programmi basati su .NET che utilizzano immagini di runtime fornite da Microsoft.

Dockerizzare .NET

Microsoft fornisce immagini di base predefinite per l'esecuzione di applicazioni .NET. Non dovrai gestire l'installazione del runtime .NET o dell'SDK nel tuo contenitore Docker, poiché puoi semplicemente estendere l'immagine di base di Microsoft per la versione di .NET utilizzata dalla tua applicazione.

A meno che tu non preveda di distribuire contenitori Windows su un server Windows, dovrai utilizzare .NET Core o .NET 5. Il runtime .NET Framework precedente non è multipiattaforma e non verrà eseguito su contenitori basati su Linux.

Se non hai Docker installato sulla tua macchina di sviluppo, dovrai installare Docker Desktop per avere accesso alla CLI. Se utilizzi WSL su Windows, ti consigliamo di abilitare il motore basato su WSL 2, che offre prestazioni migliori.

Per testare le cose, creeremo una nuova applicazione API ASP.NET. La stessa procedura generale si applica a qualsiasi tipo di applicazione, poiché tutto ciò che Docker sta facendo è eseguire una build ogni volta che crei il contenitore e avviare l'applicazione con un comando entrypoint.

Crea un nuovo file chiamato Dockerfile alla radice del tuo progetto, dove si trova la tua soluzione. Incolla nella seguente configurazione:

FROM mcr.microsoft.com/dotnet/core/sdk AS build-env
WORKDIR /app

# Copy csproj and restore
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "DockerTest.dll"]

Questo Dockerfile estrae l'immagine .NET Core SDK per eseguire la compilazione. Copia il .csproj over e ripristina, quindi copia tutto il resto ed esegue una build. Quindi, crea una nuova immagine dall'immagine .NET Runtime e copia gli artefatti di compilazione.

Infine, il punto di ingresso è qui definito come dotnet DockerTest.dll . Questo avvierà il server Web ASP.NET, anche se potrebbe essere necessario modificare i parametri per la tua applicazione o specificare un comando del punto di ingresso completamente diverso.

Puoi testare l'esecuzione del tuo container con docker container run , passandolo nell'ID del contenitore di build:

docker container run containerid

Per un'applicazione ASP.NET, dovrai aprire le porte mappando una porta sull'host a una porta sul container:

docker run -p 80:80 containerid

Puoi leggere la nostra guida per lavorare con Docker e Dockerfiles per saperne di più.


Docker
  1. Come eseguire un programma all'interno di un contenitore Docker?

  2. Come collegare i contenitori Docker

  3. Come eseguire MySQL in un contenitore Docker

  4. Come eseguire un comando su un contenitore Docker in esecuzione

  5. Come installare Docker ed eseguire Docker Container in Ubuntu

Come eseguire Docker come utente non root in Linux

Come eseguire SSH in un contenitore Docker ed eseguire comandi

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come eseguire Jenkins in Docker usando Docker Compose con volumi

Come eseguire i contenitori Docker