En av de största fördelarna med Docker är att den låter dig köra programvaruprojekt utan att behöva skapa komplexa utvecklingsmiljöer.
Den här guiden visar hur du skapar en Docker-avbildning av ett .NET 5 Web API. Du kan sedan använda bilden för att köra backend-koden från vilken dator som helst som har Docker installerad och interagera med API: et från ditt front-end webbprojekt eller en mobilapp.
Skapa ett .NET 5 webb-API
Både Docker och .NET 5 är öppen källkod och plattformsöverskridande, därför kan du följa den här guiden oavsett om du använder macOS, Windows eller Linux.
Använd dotnet CLI för att skapa ett ASP.NET Web API-projekt med följande kommando:
dotnet ny webapi -o aspdockerapi
Kommandot ovan skapar ett projekt som heter aspdockerapi och placerar den i en mapp med samma namn. Dessutom ställs applikationen en API-controller med några exempel på väderprognosdata.
Notera: Om du inte har .NET 5 installerat på din dator kan du ladda ner det från länken nedan.
Ladda ner: .NET 5 För Windows, macOS och Linux
När projektet har skapats kan du gå in i projektets rotmapp med följande kommando.
cd aspdockerapi
Du kan köra och betjäna webb-API med kommandot nedan.
dotnet-körning
Som standard serveras applikationen på port 5001. Du kan se programmets exempeldata i din webbläsare på följande URL: https://localhost: 5001 / väderprognos och API: s data ska se ut som nedan.
Läs mer: Vad är ett API?
Skapa instruktioner för Docker-bild
För att skapa en Docker-bild måste du ge Docker Engine några instruktioner om hur man bygger den. Dessa instruktioner ska placeras i en fil med namnet Dockerfil. Observera att filen inte har något tillägg.
Använd följande kommando för att skapa Dockerfil i applikationsprojektets rotmapp.
tryck på Dockerfile
Efter att ha skapat Dockerfil, din mappstruktur för projekt ska likna den nedan:
Nu, kopiera och klistra in koden nedan i din Dockerfil.
FRÅN mcr.microsoft.com/dotnet/aspnet: 5,0-fokal AS-bas
WORKDIR / app
EXPONERA 80
FRÅN mcr.microsoft.com/dotnet/sdk: 5.0-focal AS build
WORKDIR / src
KOPIERA ["aspdockerapi.csproj", "./"]
KÖR dotnet-återställning "./aspdockerapi.csproj"
KOPIERA. .
WORKDIR "/ src /."
KÖR dotnet build "aspdockerapi.csproj" -c Release -o / app / build
FRÅN build AS publicera
KÖR dotnet publicera "aspdockerapi.csproj" -c Release -o / app / publish
FRÅN bas AS final
WORKDIR / app
KOPIERA --från = publicera / app / publicera.
ENTRYPOINT ["dotnet", "aspdockerapi.dll"]
Notera: I Dockerfilen ovan är projekt- och dll-namnen aspdockerapi.csproj och aspdockerapi.dll Om ditt projekt har ett annat namn, se till att du uppdaterar din Dockerfil med rätt namn.
Förstå instruktionerna för Dockerfile
De Dockerfil består huvudsakligen av Dockerfile-nyckelord, som enligt konvention är versaler. Nyckelorden specificerar instruktionen att köra i varje lager av Docker-bilden. Nedan följer de viktigaste Docker-nyckelorden som Dockerfilen ovan använder.
1. FRÅN
De FRÅN nyckelordet anger basbilden som vi vill att vår bild ska byggas på. I Dockerfilen ovan är den ursprungliga basbilden en .NET 5-bild från Microsoft. .NET 5-basavbildningen innehåller nödvändiga komponenter för att köra programmet.
2. WORKDIR
WORKDIR ställer in arbetskatalogen eller sammanhanget i bilden. I detta exempel är /app katalog tilldelas som standard root-arbetskatalog med följande uttalande WORKDIR / app.
3. KOPIERA
De KOPIERA nyckelordet kopierar helt enkelt innehåll från en mapp och placerar det i en annan. I det här exemplet används det ursprungligen för att kopiera huvudprojektfilen, det vill säga aspdockerapi.csproj in i bildkatalogen.
4. SPRINGA
De SPRINGA nyckelord används för att köra ett specifikt Linux-kommando i en Docker-avbild. I Dockerfil ovanför SPRINGA kommandot används för att återställa beroenden, bygga ASP.NET-projektet och publicera projektet.
5. CMD
De CMD nyckelordet är lite som det SPRINGA nyckelord som diskuterats ovan. Det används också för att köra ett Linux-kommando, men till skillnad från SPRINGA nyckelord som kör kommandon för att bygga bilden, CMD nyckelord används för att köra Linux-kommandon när bilden startas, i en containerinstans.
6. EXPONERA
De ÖVERSIKT nyckelord används för att exponera en port inuti Docker-bilden för omvärlden. I det här fallet exponerar bilden port 80, som används för att exponera API: t när du kör Docker-behållaren.
Bygga Docker Image
Att bygga Docker-bilden baserat på Dockerfil, kör bara följande kommando i projektets rotmapp, det vill säga där Dockerfil är placerad.
docker build -t dockerwebapi -f Dockerfile.
Kommandot ovan märker Docker-bilden med namnet dockerwebapi och specificerar också att instruktionerna för att bygga den här bilden finns i Dockerfil.
När bilden är klar kan du kontrollera om den är listad som en lokal Docker-bild med följande kommando:
dockerbilder
Utgången från kommandot ovan bör vara ungefär som den nedan och bilden (dockerwebapi) visas på första raden i detta fall.
Om du inte har Docker installerad på din dator, Så här installerar du docker på Ubuntu Linux, annars använder du länken nedan för att ladda ner och installera Docker.
Ladda ner: Docker nedladdnings- och installationsguide
Kör Docker-bilden
För att köra den nyligen skapade Docker-avbildningen, använd följande kommando. De -ti alternativet anger att bilden ska köras i ett interaktivt terminalläge och --rm anger att behållaren ska tas bort omedelbart efter att den lämnat.
docker kör -ti --rm -p 8080: 80 dockerwebapi
Kommandot specificerar också att Docker-behållaren ska köras på HTTP-port 8080, som mappas till port 80 inuti kontianern.
Gå till webbadressen: http://localhost: 8080 / WeatherForecast i din webbläsare och du hittar dina API-data som visas från den Docker-instans som du kör.
Varför använda Docker?
Den här guiden visade dig hur du skapar en Docker-avbildning av ett .NET 5 webb-API.
Med Docker kan du automatisera hur du distribuerar dina applikationer, förenkla installationen av programvaruutvecklingsmiljöer och underlätta samarbetet med andra mjukvaruutvecklare.
Docker erbjuder också flera fördelar jämfört med andra virtualiseringstekniker, varför du förmodligen bör överväga att använda den i dina programvaruteknikprojekt.
Docker ger många fördelar jämfört med en virtuell maskin, här finns skälen att börja använda den idag.
Läs Nästa
- Programmering
- Webbutveckling
- Hamnarbetare
- ASP.NET

Mwiza utvecklar programvara av yrke och skriver mycket om Linux och front-end programmering. Några av hans intressen inkluderar historia, ekonomi, politik och företagsarkitektur.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Ett steg till…!
Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.