🐳 .NET Web Deployment with Docker

Leveraging Containers for Modern Application Deployment

Deploying .NET Web Applications with Docker

Docker has revolutionized how applications are built, shipped, and run. This guide will walk you through the process of containerizing your .NET web applications, enabling consistent deployments across different environments.

Why Docker for .NET?

Consistency: Ensures your application runs the same way everywhere, from your local machine to production servers.

🚀 Portability: Easily move your applications between different cloud providers and infrastructure.

📦 Isolation: Applications and their dependencies are isolated, preventing conflicts.

⏱️ Faster Deployments: Streamline your CI/CD pipelines with pre-built container images.

Getting Started: Prerequisites

Step 1: Create a Dockerfile

A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Create a file named Dockerfile (no extension) in the root directory of your .NET project.

Example Dockerfile for an ASP.NET Core Application:

# Use the official .NET SDK as a build image
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /app

# Copy the solution file and restore dependencies
COPY *.sln ./
COPY YourProjectName/*.csproj ./YourProjectName/
RUN dotnet restore

# Copy the application code
COPY YourProjectName/. ./YourProjectName/

# Build the application
RUN dotnet publish YourProjectName.csproj -c Release -o /app/publish

# Use the official .NET runtime as a runtime image
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime
WORKDIR /app

# Copy the published output from the build stage
COPY --from=build /app/publish .

# Expose the port the application listens on
EXPOSE 80

# Set the entry point for the container
ENTRYPOINT ["dotnet", "YourProjectName.dll"]

Note: Replace YourProjectName with the actual name of your project.

Step 2: Build the Docker Image

Open your terminal or command prompt in the directory where you saved the Dockerfile and run the following command:

docker build -t your-app-name:latest .

This command builds a Docker image and tags it with your-app-name:latest. The dot . at the end indicates that the Dockerfile is in the current directory.

Step 3: Run the Docker Container

Once the image is built, you can run it as a container:

docker run -d -p 8080:80 your-app-name:latest

This command runs the container in detached mode (-d) and maps port 8080 on your host machine to port 80 inside the container (-p 8080:80).

Step 4: Access Your Application

Open your web browser and navigate to http://localhost:8080. You should see your .NET web application running inside the Docker container.

Advanced Topics

For more in-depth information and specific scenarios, refer to the official .NET documentation on Docker and the comprehensive Docker documentation.

View Related Resources Download Example Project