Docker é uma plataforma de containers que permite empacotar uma aplicação junto com todas as suas dependências (bibliotecas, runtime, configurações) em uma unidade isolada chamada container.
Diferente de uma máquina virtual completa, o container compartilha o kernel do sistema operacional host, o que o torna muito mais leve e rápido de iniciar. O resultado: “funciona na minha máquina” deixa de ser problema — o mesmo container roda igual em desenvolvimento, staging e produção.
Conceitos básicos
- Imagem — o “molde” imutável (Dockerfile → image)
- Container — a instância em execução da imagem
- Dockerfile — receita em texto que descreve como construir a imagem
- Docker Compose — orquestra vários containers juntos (app + banco + cache etc.)
Por que usar
Padronização de ambientes, isolamento, facilidade de deploy, escala horizontal e integração natural com Kubernetes, CI/CD e práticas de DevOps. Em homelabs e produção, Docker (ou Podman) é quase sempre o ponto de partida.
docker run hello-world e depois aprenda a escrever um Dockerfile simples. O resto vem com a prática.