A containerização tornou-se um elemento essencial da infraestrutura moderna. Neste laboratório, foi criado um ambiente local com Docker integrado ao WSL2 para publicar uma aplicação simples utilizando Nginx, com o objetivo de compreender os benefícios dessa abordagem em práticas DevOps.
Diferente do modelo tradicional, que exige instalação e configuração manual em cada ambiente, o Docker permite executar aplicações em containers isolados e padronizados. Isso reduz inconsistências entre ambientes, facilita a replicação e aumenta a previsibilidade ao tratar a infraestrutura como código.
O Nginx foi escolhido por seu alto desempenho, baixo consumo de recursos e ampla utilização em ambientes Linux e cloud. Além de servir conteúdo estático com eficiência, ele é frequentemente utilizado como reverse proxy em arquiteturas modernas.
O ambiente foi configurado em Windows com Docker Desktop integrado ao WSL2 (Ubuntu), garantindo uma base local estável e compatível para execução e testes de containers.
Arquitetura do laboratório
Ambiente:
- Windows
- WSL2 (Ubuntu)
- Docker Desktop
- Docker Engine
- Nginx
O que foi feito
Após instalação docker realizei a configuração do Docker Desktop e integração com WSL2 via PowerShell:
wsl --update
wsl --shutdown
Teste inicial do funcionamento do Docker:
docker run hello-world
Verificação dos containers ativos:
docker ps
Execução de um container Nginx:
docker run -d -p 8080:80 nginx
O que isso faz:
- -d: roda em segundo plano
- -p: 8080:80 expõe a porta
- nginx: servidor web
Aplicação publicada em:
http://localhost:8080
- Criação de Dockerfile personalizado Criação da pasta do projeto:
mkdir C:\Sites\devops-lab
cd C:\Sites\devops-lab
Criação do Dockerfile
New-Item Dockerfile -ItemType File
Dentro do arquivo Dockerfile foi acidionado o caminho de cópia do arquivo index.html para base do Nginx:
FROM nginx:latest
COPY index.html /usr/share/nginx/html/index.html
Continuando na mesma pasta devops-lab, criei o arquivo:
index.html
Conteúdo:
<!DOCTYPE html>
<html>
<head>
<title>DevOps Lab - Willamis</title>
</head>
<body>
<h1>Projeto DevOps</h1>
<p>Container Nginx rodando com Docker</p>
<p>Autor: Willamis Silva</p>
</body>
</html>
Troubleshooting de conflitos de porta. Pare o serviço do container utilização padrão do nginx, executei o comando de para do container:
docker stop <container_id>
Buid da imagem customizada:
docker build -t nginx-will .
Execução do container:
docker run -d -p 8080:80 nginx-will
Aplicação web publicada em container Docker com imagem personalizada:
http://localhost:8080
Este laboratório demonstra, na prática, como criar e executar imagens personalizadas, publicar aplicações em containers e trabalhar com mapeamento de portas. Mais do que isso, ele mostra como construir um ambiente reproduzível, um dos princípios fundamentais da Infraestrutura como Código.
No contexto DevOps, a combinação de Docker e Nginx oferece uma base sólida para deploys rápidos, ambientes consistentes e fácil portabilidade entre máquinas. Essa mesma lógica é utilizada em pipelines de CI/CD e em plataformas de orquestração como Kubernetes.
Embora simples, este projeto representa um passo importante para quem deseja evoluir em áreas como Cloud, DevOps ou Engenharia de Plataformas. Pequenos laboratórios como este refletem o funcionamento de ambientes reais em escala maior e ajudam a desenvolver a mentalidade de automação e padronização que o mercado exige.