Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man skapar en Docker-bild av ett .NET Web API

En av de största fördelarna med Docker är att det låter dig köra programvaruprojekt utan att behöva ställa in komplexa utvecklingsmiljöer.

Den här guiden visar hur du skapar en Docker-bild av ett .NET 5-webb-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:t 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 plattformsoberoende, 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 new webapi -o aspdockerapi 

Kommandot ovan skapar ett projekt med namnet aspdocerapi och placerar den i en mapp med samma namn. Dessutom bygger applikationen en API-styrenhet med några exempel på väderprognosdata.

Notera: Om du inte har .NET 5 installerat på din PC 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:t med kommandot nedan.

 dotnet run 

Som standard kommer applikationen att visas på port 5001. Du kan se applikationens exempeldata i din webbläsare på följande URL: https://localhost:5001/weatherforecast och API:s data bör se ut som nedan.

Skapa Docker Image Instruktioner

För att skapa en Docker-bild måste du ge Docker Engine några instruktioner om hur man bygger den. Dessa instruktioner bör placeras i en fil med namnet Dockerfil. Observera att filen inte har något tillägg.

Relaterad  Dell Latitude 7400 2-i-1-recension: den känner igen dig även i vänteläge!

Använd följande kommando för att skapa Dockerfil i rotmappen för ditt programprojekt.

touch Dockerfile

Efter att ha skapat Dockerfil, din projektmappstruktur bör likna den nedan:

Kopiera nu och klistra in koden nedan i din Dockerfil.

FROM mcr.microsoft.com/dotnet/aspnet:5.0-focal AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
WORKDIR /src
COPY ["aspdockerapi.csproj", "./"]
RUN dotnet restore "./aspdockerapi.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "aspdockerapi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "aspdockerapi.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "aspdockerapi.dll"]

Notera: I Dockerfilen ovan är projekt- och dll-namnen aspdocerapi.csproj och aspdocerapi.dll respektive, om ditt projekt har ett annat namn, se till att uppdatera din Dockerfil med de korrekta namnen.

Förstå Dockerfile-instruktionerna

De Dockerfil består huvudsakligen av Dockerfile nyckelord, som enligt konventionen är stora bokstäver. Nyckelorden anger instruktionen som ska köras i varje lager i Docker-bilden. Nedan finns 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 de komponenter som krävs för att köra programmet.

2. WORKDIR

WORKDIR ställer in arbetskatalogen eller sammanhanget inuti bilden. I det här exemplet är /app katalogen tilldelas som standardrotarbetskatalogen med hjälp av följande sats 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 den initialt för att kopiera huvudprojektfilen, dvs. aspdocerapi.csproj till bildernas arbetskatalog.

4. KÖR

De SPRINGA nyckelord används för att köra ett specifikt Linux-kommando i en Docker-bild. I den Dockerfil ovanför SPRINGA kommandot används för att återställa beroenden, bygga ASP.NET-projektet och publicera projektet.

Relaterad  Hur du exporterar dina Apple-anteckningar som PDF-filer på valfri enhet

5. CMD

De CMD nyckelordet är lite likt 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, den CMD nyckelordet används för att köra Linux-kommandon när bilden startas, i en containerinstans.

6.EXPONERA

De ÖVERSIKT nyckelordet 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 Docker-behållaren körs.

Bygga Docker-bilden

För att bygga Docker-bilden baserat på Dockerfil, kör helt enkelt följande kommando i projektets rotmapp, det vill säga där Dockerfil är placerad.

docker build -t dockerwebapi -f Dockerfile .

Kommandot ovan taggar Docker-bilden med namnet dockerwebapi och anger också att instruktionerna för att bygga denna bild finns i Dockerfil.

När bilden är färdigbyggd kan du kontrollera om den är listad som en lokal Docker-bild med följande kommando:

docker images

Utdata från kommandot ovan bör likna den nedan, och bilden (dockerwebapi) visas på första raden i detta fall.

Om du inte har Docker installerat på din PC, så här installerar du docker på Ubuntu Linux, annars använd 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 nyskapade 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ämnats.

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

Kommandot anger också att Docker-behållaren ska köras på HTTP-porten 8080, som mappas till port 80 inuti kontianern.

Relaterad  Hur man ställer in en timer på en Apple Watch

Gå till URL:en: http://localhost:8080/WeatherForecast i din webbläsare så ser du att din API-data serveras från Docker-instansen som du kör.

Varför använda Docker?

Den här guiden visade hur du skapar en Docker-bild av ett .NET 5-webb-API.

Med Docker kan du automatisera hur du distribuerar dina applikationer, förenkla installationen av mjukvaruutvecklingsmiljöer och underlätta samarbetet med andra mjukvaruingenjörer.

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 programvaruprojekt.

Om författaren

Mwiza Kumwenda (48 artiklar publicerade)

Mwiza utvecklar mjukvara till yrket och skriver mycket om Linux och front-end-programmering. Några av hans intressen inkluderar historia, ekonomi, politik och företagsarkitektur.

Mer från Mwiza Kumwenda

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera