En av de viktigste fordelene med Docker er at den lar deg kjøre programvareprosjekter uten å måtte sette opp komplekse utviklingsmiljøer.

Denne veiledningen viser deg hvordan du lager et Docker-bilde av en .NET 5 Web API. Du kan deretter bruke bildet til å kjøre backend-koden fra hvilken som helst PC som har Docker installert og samhandle med API fra front-end web-prosjektet eller en mobilapp.

Opprette en .NET 5 Web API

Både Docker og .NET 5 er åpen kildekode og plattformoverskridende, derfor kan du følge denne guiden enten du bruker macOS, Windows eller Linux.

Bruk dotnet CLI til å opprette et ASP.NET Web API-prosjekt med følgende kommando:

 dotnet ny webapi -o aspdockerapi 

Kommandoen ovenfor oppretter et prosjekt som heter aspdockerapi og plasserer den i en mappe med samme navn. I tillegg stiller applikasjonen en API-kontroller med noen eksempler på værvarslingsdata.

Merk: Hvis du ikke har .NET 5 installert på PC-en, kan du laste den ned fra lenken nedenfor.

nedlasting: .NET 5 For Windows, macOS og Linux

Når prosjektet er opprettet, kan du gå inn i prosjektets rotmappe ved hjelp av følgende kommando.

cd aspdockerapi

Du kan kjøre og betjene web-API-et ved hjelp av kommandoen nedenfor.

 dotnet kjøre 

Som standard vil applikasjonen bli servert på port 5001. Du kan se programmets eksempeldata i nettleseren din på følgende URL: https://localhost: 5001 / værvarsel og API-dataene skal se ut som nedenfor.

Lære mer: Hva er et API?

Opprette instruksjoner for Docker-bilder

For å opprette et Docker-bilde, må du gi Docker Engine noen instruksjoner om hvordan du bygger det. Disse instruksjonene skal plasseres i en fil som heter Dockerfil. Merk at filen ikke har utvidelse.

Bruk følgende kommando for å opprette Dockerfil i applikasjonsprosjektets rotmappe.

trykk på Dockerfile

Etter å ha opprettet Dockerfil, må prosjektmappestrukturen din være lik den nedenfor:

Nå, kopier og lim inn koden nedenfor i din Dockerfil.

FRA mcr.microsoft.com/dotnet/aspnet: 5.0-focal AS base
WORKDIR / app
EKSPONER 80
FRA mcr.microsoft.com/dotnet/sdk: 5.0-focal AS build
WORKDIR / src
KOPIER [[aspdockerapi.csproj "," ./ "]
KJØR dotnet-gjenoppretting "./aspdockerapi.csproj"
KOPIERE. .
WORKDIR "/ src /."
KJØR dotnet build "aspdockerapi.csproj" -c Release -o / app / build
FRA build AS publisere
KJØR dotnet publiser "aspdockerapi.csproj" -c Release -o / app / publish
FRA base AS finale
WORKDIR / app
KOPIER --fra = publiser / app / publiser.
ENTRYPOINT ["dotnet", "aspdockerapi.dll"]

Merk: I Dockerfile ovenfor er prosjekt- og dll-navnene aspdockerapi.csproj og aspdockerapi.dll Hvis prosjektet ditt har et annet navn, må du sørge for å oppdatere Dockerfile med de riktige navnene.

Forstå Dockerfile-instruksjonene

De Dockerfil består hovedsakelig av Dockerfile-nøkkelord, som etter konvensjon er store bokstavord. Nøkkelordene angir instruksjonene som skal utføres i hvert lag av Docker-bildet. Nedenfor er de viktigste Docker-nøkkelordene som Dockerfile ovenfor bruker.

1. FRA

De FRA nøkkelord angir grunnbildet som vi ønsker at bildet vårt skal bygges på. I Dockerfile ovenfor er det opprinnelige basisbildet et .NET 5-bilde fra Microsoft. NET 5-basisbildet inneholder de nødvendige komponentene for å kjøre applikasjonen.

2. WORKDIR

WORKDIR angir arbeidskatalogen eller konteksten i bildet. I dette eksemplet er /app katalog er tilordnet som standard rotarbeidskatalog ved hjelp av følgende setning WORKDIR / app.

3. KOPIERE

De KOPIERE nøkkelord bare kopierer innhold fra en mappe og plasserer det i en annen. I dette eksemplet brukes den opprinnelig til å kopiere hovedprosjektfilen, det vil si aspdockerapi.csproj inn i bildene.

4. LØPE

De LØPE nøkkelord brukes til å kjøre en bestemt Linux-kommando i et Docker-bilde. I Dockerfil over LØPE kommandoen brukes til å gjenopprette avhengigheter, bygge ASP.NET-prosjektet og publisere prosjektet.

5. CMD

De CMD nøkkelordet er litt likt LØPE nøkkelord diskutert ovenfor. Den brukes også til å kjøre en Linux-kommando, men i motsetning til LØPE nøkkelord som kjører kommandoer for å bygge bildet, CMD nøkkelord brukes til å kjøre Linux-kommandoer når bildet startes, i en containerforekomst.

6. UTSTILLING

De AVDEKKE nøkkelord brukes til å eksponere en port inne i Docker-bildet for omverdenen. I dette tilfellet eksponerer bildet port 80, som brukes til å eksponere API når du kjører Docker-beholderen.

Bygg Docker Image

Å bygge Docker-bildet basert på Dockerfil, bare kjør følgende kommando i prosjektets rotmappe, det vil si hvor Dockerfil er plassert.

docker build -t dockerwebapi -f Dockerfile.

Kommandoen ovenfor merker Docker-bildet med navnet dockerwebapi og spesifiserer også at instruksjonene for å bygge dette bildet er i Dockerfil.

Etter at bildet er ferdig bygget, kan du sjekke om det er oppført som et lokalt Docker-bilde ved hjelp av følgende kommando:

docker-bilder

Utgangen fra kommandoen ovenfor skal være lik den nedenfor, og bildet (dockerwebapi) vises på første linje i dette tilfellet.

Hvis du ikke har Docker installert på PCen din, Slik installerer du docker på Ubuntu Linux, bruk ellers lenken nedenfor for å laste ned og installere Docker.

nedlasting: Docker nedlasting og installasjonsveiledning

Kjører Docker Image

For å kjøre det nylig opprettede Docker-bildet, bruk følgende kommando. De -ti alternativet spesifiserer at bildet skal kjøres i en interaktiv terminalmodus, og --rm angir at beholderen skal fjernes umiddelbart etter at den har kommet ut.

docker run -ti --rm -p 8080: 80 dockerwebapi

Kommandoen spesifiserer også at Docker-beholderen skal kjøre på HTTP-port 8080, som tilordnes til port 80 inne i kontianeren.

Gå til URL: http://localhost: 8080 / WeatherForecast i nettleseren din, og du vil finne at API-dataene dine blir servert fra Docker-forekomsten du kjører.

Hvorfor bruke Docker?

Denne guiden viste deg hvordan du lager et Docker-bilde av et .NET 5 web API.

Med Docker kan du automatisere hvordan du distribuerer applikasjonene dine, forenkle konfigurasjonen av programvareutviklingsmiljøer og lette samarbeidet med andre programvareingeniører.

Docker tilbyr også flere fordeler i forhold til andre virtualiseringsteknologier, og det er derfor du sannsynligvis bør vurdere å bruke det i programvaretekniske prosjekter.

E-post
6 grunner til å bruke Docker Virtualization Software

Docker gir mange fordeler i forhold til en virtuell maskin, her er grunnene til å begynne å bruke den i dag.

Les Neste

Relaterte temaer
  • Programmering
  • Webutvikling
  • Docker
  • ASP.NET
Om forfatteren
Mwiza Kumwenda (26 publiserte artikler)

Mwiza utvikler programvare av yrke og skriver mye om Linux og front-end programmering. Noen av hans interesser inkluderer historie, økonomi, politikk og virksomhetsarkitektur.

Mer fra Mwiza Kumwenda

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.