Docker is a powerful tool for containerizing applications, allowing developers to package their applications and dependencies into a single container. This guide will walk you through the steps to create and manage a Docker container for an ASP.NET Core application using the command line interface (CLI).

Prerequisites

Step 1: Create an ASP.NET Core Application

First, create a new ASP.NET Core application using the .NET CLI. Open your terminal and run the following command:

dotnet new webapp -n MyAspNetApp

This command creates a new ASP.NET Core web application named MyAspNetApp.

Step 2: Create a Dockerfile

Navigate to the project directory:

cd MyAspNetApp

Create a file named Dockerfile in the root of your project directory and add the following content:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["MyAspNetApp.csproj", "./"]
RUN dotnet restore "./MyAspNetApp.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "MyAspNetApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MyAspNetApp.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyAspNetApp.dll"]

This Dockerfile defines the steps to build and run your ASP.NET Core application in a Docker container.

Step 3: Build the Docker Image

To build the Docker image, run the following command in the terminal:

docker build -t myaspnetapp .

This command builds the Docker image and tags it as myaspnetapp.

Step 4: Run the Docker Container

After building the image, you can run a container from it using the following command:

docker run -d -p 8080:80 --name myaspnetapp-container myaspnetapp

This command runs the container in detached mode, maps port 8080 on your host to port 80 in the container, and names the container myaspnetapp-container.

Step 5: Verify the Application

Open your web browser and navigate to http://localhost:8080. You should see your ASP.NET Core application running.

Step 6: Manage the Docker Container

You can manage your Docker container using the following commands:

  • To stop the container:
    docker stop myaspnetapp-container
  • To start the container:
    docker start myaspnetapp-container
  • To remove the container:
    docker rm myaspnetapp-container
  • To view running containers:
    docker ps
  • To view all containers (including stopped ones):
    docker ps -a

Conclusion

You have successfully created and managed a Docker container for an ASP.NET Core application using the CLI. By following these steps, you can easily containerize your applications, making them portable and easier to deploy across different environments. Docker simplifies the development and deployment process, allowing you to focus on building your application without worrying about the underlying infrastructure. With the commands provided, you can build, run, and manage your Docker containers effectively, ensuring a smooth development workflow.