Containerização de aplicações C# com Docker: guia passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que seu projeto C# precisa do Docker?

\n\n

Imagine a situação: você escreveu uma aplicação C# incrível no seu notebook com Windows 11, instalou todas as bibliotecas, configurou o banco de dados, e tudo funciona perfeitamente. Mas quando você envia o projeto para um colega no macOS ou o envia para um servidor Linux, começa o caos: "eu tenho uma versão diferente do .NET", "e o SQL Server?", "no seu código o caminho para os arquivos está hardcoded"... Familiar?

\n\n

É aqui que a containerização de aplicações C# com Docker entra em ação. O Docker permite empacotar sua aplicação junto com todas as dependências, configurações e até mesmo o sistema operacional em um contêiner leve. E ele funcionará da mesma forma em qualquer lugar: no seu PC, no servidor do colega, na nuvem AWS ou Azure.

\n\n

Neste artigo, vamos abordar como containerizar aplicações C# com Docker do início ao fim. Você aprenderá como criar um Dockerfile para ASP.NET Core, como otimizar o tamanho da imagem e como executar tudo isso com um único comando. Vamos lá!

\n\n

O que é Docker e por que ele é importante para o desenvolvedor C#?

\n\n

Docker é uma plataforma para containerização de aplicações. Um contêiner é um ambiente isolado que contém sua aplicação e tudo o que ela precisa para funcionar: runtime, bibliotecas, variáveis de ambiente, configurações. Ao contrário das máquinas virtuais, os contêineres compartilham o kernel do sistema operacional, portanto, eles iniciam mais rápido e ocupam menos espaço.

\n\n

Para o desenvolvedor .NET, o Docker oferece alguns recursos matadores:

\n\n
    \n
  • Elimina o problema "funciona na minha máquina" — o contêiner garante um ambiente consistente
  • \n
  • Simplifica o CI/CD — você cria a imagem uma vez e a usa em todos os lugares
  • \n
  • Arquitetura de microsserviços — cada serviço em C# vive em seu próprio contêiner
  • \n
  • Escalabilidade — execute facilmente 10 cópias da sua API em segundos
  • \n
  • Isolamento — as dependências de um projeto não entram em conflito com as de outro
  • \n
\n\n

Se você ainda não usa a containerização de aplicações .NET, está na hora de começar. E vamos fazer isso agora mesmo.

\n\n

Preparação: o que você precisa instalar

\n\n

Antes de começar a containerização C#, certifique-se de ter instalado:

\n\n
    \n
  1. Docker Desktop — baixe do site oficial. Para Windows, certifique-se de ativar o WSL 2 (dicas serão fornecidas durante a instalação).
  2. \n
  3. .NET SDK 8.0 (ou 7.0/9.0 — não é essencial) — baixe do Microsoft.
  4. \n
  5. VS Code ou Visual Studio 2022 — para trabalhar com o código de forma conveniente.
  6. \n
\n\n

Verifique a instalação com os comandos no terminal:

\n\n
docker --version\ndotnet --version
\n\n

Se ambos os comandos retornarem o número da versão — está tudo pronto para o desenvolvimento Docker para .NET.

\n\n

Criando uma aplicação C# simples para containerização

\n\n

Para demonstração, vamos usar uma API Web ASP.NET Core mínima. Vamos criar o projeto em uma pasta vazia:

\n\n
dotnet new webapi -n MyDockerApp\ncd MyDockerApp
\n\n

Abra o arquivo Program.cs e simplifique-o para ficar assim (para ficar claro):

\n\n
var builder = WebApplication.CreateBuilder(args);\nvar app = builder.Build();\n\napp.MapGet("/", () => "Hello from Dockerized C# App!");\n\napp.Run();
\n\n

Execute localmente para garantir que tudo funcione:

\n\n
dotnet run
\n\n

Acesse no navegador http://localhost:5000 (ou a porta que o console exibir). Viu a saudação? Ótimo. Agora vamos empacotar esta aplicação no Docker.

\n\n

Escrevendo o Dockerfile para a aplicação C#

\n\n

O Dockerfile é a instrução para construir a imagem. Para <

Blogs

Book Recommendations