1. Create a site
Create an asp.net core web application and select enable docker support. Automatically create a dockerfile for us.
2. Write dockerfile file
The topic content of dockerfile is generally divided into four parts
Basic image information
Maintainer information using label instruction
Mirror operation instruction
Execute command when container starts
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. #Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed. #For more information, please see https://aka.ms/containercompat #FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base #WORKDIR /app #EXPOSE 80 #EXPOSE 443 # #FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build #WORKDIR /src #COPY ["AA.Mvc/AA.Mvc.csproj", "AA.Mvc/"] #RUN dotnet restore "AA.Mvc/AA.Mvc.csproj" #COPY . . #WORKDIR "/src/AA.Mvc" #RUN dotnet build "AA.Mvc.csproj" -c Release -o /app/build # #FROM build AS publish #RUN dotnet publish "AA.Mvc.csproj" -c Release -o /app/publish # #FROM base AS final #WORKDIR /app #COPY --from=publish /app/publish . #ENTRYPOINT ["dotnet", "AA.Mvc.dll"] #Parent image #FROM microsoft/aspnetcore:5.0 #FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS baseWORKDIR /app FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base ##Set working directory #WORKDIR /app # ##Copy the publish file to / APP #COPY . /app # ##Set port #EXPOSE 5005 EXPOSE 80 COPY . . #Use aa.mvc.dll to run asp.net core project, pay attention to case #ENTRYPOINT ["dotnet", "AA.Mvc.dll", "--server.urls", "http://*:5005"] ENTRYPOINT ["dotnet", "AA.Mvc.dll"]
Instruction description of dockerfile file:
From – specifies the base image of the created image
Workdir – configure working directory
Expose – declare the port on which the service in the image listens
Copy – copy content to image
Entrypoint – the default command to start the image
3. Compile and publish web project
4. Build the image, run the container and browse
To create an image, you can use the command docker build as follows:
docker build -t core-mvc .
This step may be slower, because you need to download the running environment. Please wait patiently
-T — specify the image name
At the end of the command . — Indicates that the build context is the current directory. By default, docker will use the root directory of the context to find the dockerfile file
Look at the image list and enter the command
Create, start and view containers
docker run --name netcore-mvc -d -p 50879:80 core-mvc
docker ps -a
-D, which means to run the container in the form of daemonized in the background
-P external port and internal container port mapping.
–Name specifies the name of the container. Of course, you can not specify it. It will be created for us by default
Here, if docker run fails and runs again, it will prompt that the name already exists. You can use the following command to delete the container
docker rm -f netcore-mvc
The last parameter core MVC is the image name we just created. After the above four steps, enter the address in the browser http://localhost : 50879 / see the picture
So far, a complete project runs in the docker container manually.