Docker: Revolucionando o Deploy de Aplicações
Por que usar Docker?
Docker resolve o clássico problema "funciona na minha máquina". Com containers, você garante que sua aplicação rodará da mesma forma em desenvolvimento, teste e produção.
Conceitos Básicos
Imagens
São templates read-only que contêm tudo necessário para executar sua aplicação.
Containers
Instâncias executáveis de imagens. São isolados e leves.
Dockerfile
Arquivo de texto com instruções para construir uma imagem Docker.
Criando um Dockerfile para .NET
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 ["MinhaApp.csproj", "."]
RUN dotnet restore
COPY . .
RUN dotnet build -c Release -o /app/build
FROM build AS publish
RUN dotnet publish -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MinhaApp.dll"]
Comandos Essenciais
docker build -t minha-app .- Constrói a imagemdocker run -p 8080:80 minha-app- Executa o containerdocker ps- Lista containers em execuçãodocker logs <container-id>- Visualiza logs
Docker Compose
Para aplicações com múltiplos serviços (API + Banco de dados):
version: '3.8'
services:
api:
build: .
ports:
- "8080:80"
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: senha123
Boas Práticas
- Use imagens base oficiais e específicas
- Minimize o número de camadas
- Use .dockerignore para excluir arquivos desnecessários
- Não armazene segredos nas imagens
Docker simplifica drasticamente o processo de deploy e garante consistência entre ambientes!