In this article we will learn basic of docker and will run .net core web api inside docker container.
Step 1
Ensure you must have .net8.0 in your machine
Install from Microsoft site

Step 2
Execute below cli command and create .net core api project
csharpdotnet new webapi -o MySampleMicroservice - no-https

Open solution.
In .net 8.0 we do not have Startup.cs and everything clubbed into program .cs

Running dotnet run
Step 3
Install docker in machine and check its version
Install Docker Desktop on Windows | Docker Docs

Step 4
Create docker file
csharpfsutil file createnew Dockerfile 0
csharp
csharpFROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src COPY MySampleMicroservice.csproj . RUN dotnet restore COPY . . RUN dotnet publish -c release -o /app FROM mcr.microsoft.com/dotnet/aspnet:8.0 WORKDIR /app COPY - from=build /app . ENTRYPOINT ["dotnet", "MyMicroservice.dll"]
Let's understand what we have done.
docker image contains base files for .net core which need to run .net core project.
To run .net core application we need 2 things
a. Server which contains all base files
b. Build files which required to run using base .net core files.

Step 5
Build docker image
We need to create image from docker file
csharpdocker build -t mymicroservice .
csharphere . is important for current directory
csharp
Verify docker images.
We can see mymicroservices,
docker images

Step 6
Running images
csharpdocker run -it - rm -p 3000:8080 - name mymicroservicecontainer mymicroservice

Verify
localhost:3000/weatherforecast

Here we successfully created docker image and run.
Running instances of image known as container.
I have docker desktop also installed in my machine and corresponding running container we can see at docker desktop also
Container name: mymicroservicecontainer.

Exploring inside Container.
Using docker terminal we can list files that container have.
These are published files.

same files in local build

Conclusion
We have learnt basic of Docker and how to run .net core api using docker container
Copyrights © 2024 letsupdateskills All rights reserved