Что такое Docker? Запуск .NET-приложения в контейнере

Docker — это платформа для контейнеризации, которая позволяет упаковывать приложения и их зависимости в изолированные контейнеры. Это упрощает развертывание, масштабирование и управление приложениями.

Преимущества использования Docker

  • Изоляция. Приложение и его зависимости находятся в одном контейнере, не влияя на другие процессы системы.
  • Масштабируемость. Контейнеры можно легко создавать, копировать и разворачивать в различных средах.
  • Универсальность. Контейнеры работают одинаково в разных операционных системах и облачных платформах.
  • Быстрое развертывание. Запуск контейнеров происходит быстрее, чем развертывание виртуальных машин.

Установка Docker

Для работы с Docker необходимо установить Docker Desktop или Docker Engine для серверов. После установки можно проверить его работу:

docker --version

Создание Docker-образа для .NET-приложения

1. Создание .NET-приложения

dotnet new web -o MyApp
cd MyApp

2. Создание Dockerfile

Создать в корне проекта файл Dockerfile со следующим содержимым:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY bin/Release/net8.0/publish/ .
ENTRYPOINT ["dotnet", "MyApp.dll"]

3. Сборка и публикация

dotnet publish -c Release -o out

4. Сборка Docker-образа

docker build -t myapp .

5. Запуск контейнера

docker run -p 8080:80 myapp

После этого приложение будет доступно по адресу http://localhost:8080.

Использование Docker Compose

Для управления несколькими контейнерами можно использовать docker-compose.

Создать файл docker-compose.yml:

version: '3.4'
services:
  myapp:
    image: myapp
    build: .
    ports:
      - "8080:80"

Запуск контейнера с помощью Compose:

docker-compose up -d