Een van de belangrijkste voordelen van Docker is dat u softwareprojecten kunt uitvoeren zonder dat u complexe ontwikkelomgevingen hoeft op te zetten.
Deze handleiding laat u zien hoe u een Docker-image van een .NET 5 Web API maakt. U kunt de afbeelding vervolgens gebruiken om de backend-code uit te voeren vanaf elke pc waarop Docker is geïnstalleerd en om te communiceren met de API vanuit uw front-end webproject of een mobiele app.
Een .NET 5-web-API maken
Zowel Docker als .NET 5 zijn open-source en platformonafhankelijk, daarom kunt u deze handleiding volgen, of u nu macOS, Windows of Linux gebruikt.
Gebruik de dotnet CLI om een ASP.NET Web API-project te maken met de volgende opdracht:
dotnet nieuwe webapi -o aspdockerapi
De bovenstaande opdracht maakt een project met de naam aspdockerapi en plaatst het in een map met dezelfde naam. Bovendien ondersteunt de applicatie een API-controller met enkele voorbeeldgegevens over weersvoorspellingen.
Opmerking: Als u .NET 5 niet op uw pc hebt geïnstalleerd, kunt u het downloaden via de onderstaande link.
Downloaden: .NET 5 Voor Windows, macOS en Linux
Nadat het project is gemaakt, kunt u met de volgende opdracht naar de hoofdmap van het project gaan.
cd aspdockerapi
U kunt de web-API uitvoeren en bedienen met de onderstaande opdracht.
dotnet run
Standaard wordt de applicatie geserveerd op poort 5001. U kunt de voorbeeldgegevens van de toepassing in uw browser bekijken op de volgende URL: https://localhost: 5001/weersvoorspelling en de gegevens van de API's moeten er als volgt uitzien.
Kom meer te weten: Wat is een API?
Docker-afbeeldingsinstructies maken
Om een Docker-image te maken, moet u de Docker Engine enkele instructies geven over hoe deze te bouwen. Deze instructies moeten in een bestand met de naam worden geplaatst: Dockerbestand. Merk op dat het bestand geen extensie heeft.
Gebruik de volgende opdracht om de. te maken Dockerbestand in de hoofdmap van uw toepassingsproject.
raak Dockerbestand aan
Na het maken van de Dockerbestand, moet de mapstructuur van uw projecten vergelijkbaar zijn met die hieronder:
Kopieer en plak nu de onderstaande code in uw Dockerbestand.
VAN mcr.microsoft.com/dotnet/aspnet: 5.0-focale AS-basis
WORKDIR /app
BLOOT 80
VAN mcr.microsoft.com/dotnet/sdk: 5.0-focale AS build
WORKDIR /src
KOPIE ["aspdockerapi.csproj", "./"]
RUN dotnet restore "./aspdockerapi.csproj"
KOPIËREN. .
WERKDIR "/src/."
RUN dotnet build "aspdockerapi.csproj" -c Release -o /app/build
VAN build AS publiceren
RUN dotnet publiceer "aspdockerapi.csproj" -c Release -o /app/publish
VAN basis AS definitief
WORKDIR /app
KOPIE --from=publish /app/publish .
ENTRYPOINT ["dotnet", "aspdockerapi.dll"]
Opmerking: In het Docker-bestand hierboven zijn de project- en dll-namen: aspdockerapi.csproj en aspdockerapi.dll respectievelijk, als uw project een andere naam heeft, zorg er dan voor dat u uw Dockerfile bijwerkt met de juiste namen.
De Dockerfile-instructies begrijpen
De Dockerbestand bestaat voornamelijk uit Dockerfile-sleutelwoorden, die volgens afspraak hoofdletterwoorden zijn. De trefwoorden specificeren de instructie die moet worden uitgevoerd in elke laag van de Docker-afbeelding. Hieronder staan de belangrijkste Docker-trefwoorden die het Dockerfile hierboven gebruikt.
1. VAN
De VAN trefwoord specificeert de basisafbeelding waarop we onze afbeelding willen bouwen. In de Dockerfile hierboven is de initiële basisimage een .NET 5-image van Microsoft. De .NET 5-basisimage bevat de benodigde componenten voor het uitvoeren van de applicatie.
2. WERKDIR
WERKDIR stelt de werkmap of context in de afbeelding in. In dit voorbeeld is de /app directory wordt toegewezen als de standaard root-werkdirectory met behulp van de volgende instructie: WORKDIR /app.
3. KOPIËREN
De KOPIËREN trefwoord kopieert eenvoudig inhoud van de ene map en plaatst deze in een andere. In dit voorbeeld wordt het in eerste instantie gebruikt om het hoofdprojectbestand te kopiëren, dat wil zeggen aspdockerapi.csproj in de afbeeldingen werkmap.
4. RENNEN
De RENNEN sleutelwoord wordt gebruikt om een specifieke Linux-opdracht uit te voeren binnen een Docker-afbeelding. In de Dockerbestand boven de RENNEN opdracht wordt gebruikt om afhankelijkheden te herstellen, het ASP.NET-project te bouwen en het project te publiceren.
5. CMD
De CMD trefwoord lijkt een beetje op de RENNEN hierboven besproken trefwoord. Het wordt ook gebruikt bij het uitvoeren van een Linux-opdracht, maar in tegenstelling tot de RENNEN trefwoord dat opdrachten uitvoert voor het bouwen van de afbeelding, de, CMD trefwoord wordt gebruikt om Linux-opdrachten uit te voeren wanneer de afbeelding wordt gestart, in een containerinstantie.
6.EXPOSE
De BLOOTSTELLEN trefwoord wordt gebruikt om een poort in de Docker-afbeelding aan de buitenwereld bloot te stellen. In dit geval stelt de afbeelding poort 80 bloot, die wordt gebruikt voor het vrijgeven van de API bij het uitvoeren van de Docker-container.
De Docker-afbeelding bouwen
Om de Docker-image te bouwen op basis van de Dockerbestand, voer gewoon de volgende opdracht uit in de hoofdmap van het project, dat wil zeggen, waar de Dockerbestand is geplaatst.
docker build -t dockerwebapi -f Dockerfile .
De bovenstaande opdracht tagt de Docker-afbeelding met de naam dockerwebapi en geeft ook aan dat de instructies voor het maken van deze afbeelding in de Dockerbestand.
Nadat de afbeelding klaar is met bouwen, kunt u met de volgende opdracht controleren of deze wordt vermeld als een lokale Docker-afbeelding:
docker-afbeeldingen
De uitvoer van de bovenstaande opdracht moet vergelijkbaar zijn met die hieronder, en de afbeelding (dockerwebapi) verschijnt in dit geval op de eerste regel.
Als Docker niet op uw pc is geïnstalleerd, hier leest u hoe u docker op Ubuntu Linux installeert, gebruik anders de onderstaande link om Docker te downloaden en te installeren.
Downloaden: Docker download- en installatiegids
De Docker-afbeelding uitvoeren
Gebruik de volgende opdracht om de nieuw gemaakte Docker-image uit te voeren. De -ti optie specificeert dat de afbeelding moet worden uitgevoerd in een interactieve terminalmodus, en --rm specificeert dat de container onmiddellijk na het verlaten moet worden verwijderd.
docker run -ti --rm -p 8080:80 dockerwebapi
De opdracht geeft ook aan dat de Docker-container moet worden uitgevoerd op de HTTP-poort 8080, die wordt toegewezen aan poort 80 in de contianer.
Ga naar de url: http://localhost: 8080/Weervoorspelling in uw browser en u zult zien dat uw API-gegevens worden geleverd vanuit de Docker-instantie die u gebruikt.
Waarom Docker gebruiken?
Deze handleiding liet u zien hoe u een Docker-image van een .NET 5-web-API maakt.
Met Docker kunt u de implementatie van uw applicaties automatiseren, het opzetten van software-ontwikkelomgevingen vereenvoudigen en de samenwerking met collega-software-engineers vergemakkelijken.
Docker biedt ook verschillende voordelen ten opzichte van andere virtualisatietechnologieën, daarom zou u waarschijnlijk moeten overwegen om het in uw software-engineeringprojecten te gebruiken.
Docker biedt veel voordelen ten opzichte van een virtuele machine. Dit zijn de redenen om het vandaag te gaan gebruiken.
Lees volgende
- Programmeren
- Webontwikkeling
- Docker
- ASP.NET
Mwiza ontwikkelt software van beroep en schrijft uitgebreid over Linux en front-end programmeren. Enkele van zijn interesses zijn geschiedenis, economie, politiek en ondernemingsarchitectuur.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.