En af de største fordele ved Docker er, at det giver dig mulighed for at køre softwareprojekter uden behov for at oprette komplekse udviklingsmiljøer.
Denne vejledning viser dig, hvordan du opretter et Docker-billede af en .NET 5 Web API. Du kan derefter bruge billedet til at køre backend-koden fra enhver pc, der har Docker installeret, og interagere med API'en fra dit frontend-webprojekt eller en mobilapp.
Oprettelse af en .NET 5 Web API
Både Docker og .NET 5 er open source og cross-platform, derfor kan du følge denne vejledning, uanset om du bruger macOS, Windows eller Linux.
Brug dotnet CLI til at oprette et ASP.NET Web API-projekt med følgende kommando:
dotnet ny webapi -o aspdockerapi
Ovenstående kommando opretter et projekt med navnet aspdockerapi og placerer den i en mappe med samme navn. Derudover stilladser applikationen en API-controller med nogle eksempler på vejrudsigtsdata.
Bemærk: Hvis du ikke har .NET 5 installeret på din pc, kan du downloade det fra nedenstående link.
Hent: .NET 5 Til Windows, macOS og Linux
Når projektet er oprettet, kan du gå ind i projektets rodmappe ved hjælp af følgende kommando.
cd aspdockerapi
Du kan køre og betjene web-API'en ved hjælp af kommandoen nedenfor.
dotnet-kørsel
Som standard serveres applikationen i port 5001. Du kan se applikationens eksempeldata i din browser på følgende URL: https://localhost: 5001 / vejrudsigt og API'ernes data skal se ud som nedenfor.
Lær mere: Hvad er en API?
Oprettelse af Docker-billedinstruktioner
For at oprette et Docker-billede skal du give Docker Engine nogle instruktioner om, hvordan du bygger det. Disse instruktioner skal placeres i en fil med navnet Dockerfil. Bemærk, at filen ikke har en udvidelse.
Brug følgende kommando til at oprette Dockerfil i rodmappen til dit applikationsprojekt.
tryk på Dockerfile
Efter oprettelse af Dockerfil, skal din projekts mappestruktur svare til nedenstående:
Nu skal du kopiere og indsætte koden nedenfor i din Dockerfil.
FRA mcr.microsoft.com/dotnet/aspnet: AS-base med 5.0-focal
WORKDIR / app
EKSPONER 80
FRA mcr.microsoft.com/dotnet/sdk: 5.0-focal AS build
WORKDIR / src
KOPIER ["aspdockerapi.csproj", "./"]
KØR dotnet-gendannelse "./aspdockerapi.csproj"
KOPI. .
WORKDIR "/ src /."
KØR dotnet build "aspdockerapi.csproj" -c Release -o / app / build
FRA build AS offentliggør
KØR dotnet udgive "aspdockerapi.csproj" -c Release -o / app / publish
FRA base AS endelig
WORKDIR / app
KOPIER --fra = udgiv / app / udgiv.
ENTRYPOINT ["dotnet", "aspdockerapi.dll"]
Bemærk: I Dockerfilen ovenfor er projekt- og dll-navnene aspdockerapi.csproj og aspdockerapi.dll Hvis dit projekt har et andet navn, skal du sørge for at opdatere din Dockerfil med de korrekte navne.
Forståelse af Dockerfile-instruktionerne
Det Dockerfil består hovedsageligt af Dockerfile-nøgleord, som ved konvention er store bogstavord. Nøgleordene angiver instruktionen, der skal udføres i hvert lag af Docker-billedet. Nedenfor er de vigtigste Docker-nøgleord, som Dockerfilen ovenfor bruger.
1. FRA
Det FRA nøgleord specificerer det grundbillede, som vi ønsker, at vores billede skal bygges på. I Dockerfilen ovenfor er det oprindelige basisbillede et .NET 5-billede fra Microsoft. .NET 5-basisbilledet indeholder de nødvendige komponenter til at køre applikationen.
2. WORKDIR
WORKDIR indstiller arbejdsmappen eller konteksten inde i billedet. I dette eksempel er /app bibliotek tildeles som standard root-arbejdskatalog ved hjælp af følgende sætning WORKDIR / app.
3. KOPI
Det KOPI nøgleord simpelthen kopierer indhold fra en mappe og placerer det i en anden. I dette eksempel bruges det oprindeligt til at kopiere hovedprojektfilen, det vil sige aspdockerapi.csproj ind i billedets arbejdsmappe.
4. LØB
Det LØB nøgleord bruges til at køre en bestemt Linux-kommando inden for et Docker-billede. I Dockerfil ovenfor, den LØB kommando bruges til at gendanne afhængigheder, opbygge ASP.NET-projektet og offentliggøre projektet.
5. CMD
Det CMD nøgleordet ligner lidt på LØB nøgleord diskuteret ovenfor. Det bruges også til at køre en Linux-kommando, men i modsætning til LØB nøgleord, der kører kommandoer til opbygning af billedet, CMD nøgleord bruges til at køre Linux-kommandoer, når billedet startes, i en containerinstans.
6. EKSPONER
Det UDSÆTTE nøgleord bruges til at eksponere en port inde i Docker-billedet for omverdenen. I dette tilfælde udsætter billedet port 80, som bruges til at eksponere API'en, når Docker-containeren køres.
Opbygning af Docker-billedet
At bygge Docker-billedet baseret på Dockerfil, kør blot følgende kommando inde i projektets rodmappe, det vil sige hvor Dockerfil placeres.
docker build -t dockerwebapi -f Dockerfile.
Kommandoen ovenfor mærker Docker-billedet med navnet dockerwebapi og specificerer også, at instruktionerne til opbygning af dette billede findes i Dockerfil.
Når billedet er færdigbygget, kan du kontrollere, om det er opført som et lokalt Docker-billede ved hjælp af følgende kommando:
docker-billeder
Outputtet fra kommandoen ovenfor skal svare til nedenstående og billedet (dockerwebapi) vises på første linje i dette tilfælde.
Hvis du ikke har Docker installeret på din pc, her er hvordan man installerer docker på Ubuntu Linux, ellers brug nedenstående link for at downloade og installere Docker.
Hent: Docker download- og installationsvejledning
Kører Docker-billedet
Brug følgende kommando for at køre det nyoprettede Docker-billede. Det -ti option angiver, at billedet skal køres i en interaktiv terminaltilstand, og --rm angiver, at beholderen skal fjernes umiddelbart efter, at den er trukket ud.
docker køre -ti --rm -p 8080: 80 dockerwebapi
Kommandoen specificerer også, at Docker-containeren skal køre på HTTP-port 8080, som kortlægges til port 80 inde i kontianeren.
Gå til URL: http://localhost: 8080 / WeatherForecast i din browser, og du finder ud af, at dine API-data serveres fra den Docker-forekomst, du kører.
Hvorfor bruge Docker?
Denne vejledning viste dig, hvordan du opretter et Docker-billede af en .NET 5 web-API.
Med Docker kan du automatisere, hvordan du distribuerer dine applikationer, forenkle opsætningen af softwareudviklingsmiljøer og lette samarbejdet med andre softwareingeniører.
Docker tilbyder også flere fordele i forhold til andre virtualiseringsteknologier, hvorfor du sandsynligvis bør overveje at bruge det i dine softwaretekniske projekter.
Docker giver mange fordele i forhold til en virtuel maskine, her er grundene til at begynde at bruge den i dag.
Læs Næste
- Programmering
- Web-udvikling
- Docker
- ASP.NET

Mwiza udvikler software efter erhverv og skriver udførligt om Linux og front-end programmering. Nogle af hans interesser inkluderer historie, økonomi, politik og virksomhedsarkitektur.
Abonner på vores nyhedsbrev
Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!
Et trin mere !!!
Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.