Módulo 01 — O que é Docker?
Docker é uma plataforma para empacotar e executar aplicações em ambientes isolados chamados containers.
Curso prático de Docker no Debian 13, do conceito de containers ao uso de Docker Compose, redes, volumes, Dockerfile, observabilidade, segurança e troubleshooting.
Publicado em

Este curso foi criado para quem já conhece comandos básicos de Linux e quer aprender Docker de forma prática.
Ao final, você será capaz de:
Ambiente recomendado: Debian 13 com Docker Engine e Docker Compose instalados.
| Módulo | Tema | Laboratório principal |
|---|---|---|
| 01 | Fundamentos | Executar e inspecionar o primeiro container |
| 02 | Arquitetura Docker | Identificar cliente, daemon, imagens e containers |
| 03 | Ciclo de vida | Criar, iniciar, parar e remover containers |
| 04 | Imagens | Baixar, listar, inspecionar e remover imagens |
| 05 | Portas | Publicar um servidor web Nginx |
| 06 | Volumes | Persistir dados fora do container |
| 07 | Bind mounts | Editar site no host e servir via container |
| 08 | Redes | Comunicação entre containers |
| 09 | Dockerfile | Criar sua própria imagem |
| 10 | Build e tags | Versionar imagens |
| 11 | Variáveis e configuração | Configurar containers sem alterar imagens |
| 12 | Docker Compose | Subir uma aplicação com vários serviços |
| 13 | Aplicação multicontainer | Dois serviços na mesma rede com Compose |
| 14 | Logs e diagnóstico | Investigar containers com problemas |
| 15 | Limites de recursos | Limitar CPU e memória de containers |
| 16 | Segurança básica | Boas práticas de segurança |
| 17 | Limpeza do ambiente | Remover recursos sem uso com prune |
| 18 | Laboratório: Nginx personalizado | Publicar seu próprio site em um container |
| 19 | Laboratório: banco com persistência | PostgreSQL com volume |
| 20 | Projeto final | Aplicação web + banco + rede + volume |
Siga as etapas na ordem sugerida para absorver a arquitetura e a prática.
Docker é uma plataforma para empacotar e executar aplicações em ambientes isolados chamados containers.
Docker funciona no modelo cliente-servidor.
O container passa por diferentes estados
Uma imagem é um modelo somente leitura usado para criar containers.
Containers possuem sua própria pilha de rede.
Containers são descartáveis. Dados importantes não devem depender exclusivamente do filesystem interno deles: volumes permitem persistência.
Bind mount liga diretamente uma pasta do host a uma pasta no container, ideal para ambientes de desenvolvimento.
Comunicação entre containers e resolução de nomes em redes isoladas no Docker.
Criação da sua própria imagem Docker personalizada utilizando Dockerfile e as diretivas FROM, COPY e EXPOSE.
Gerenciamento de versões com tags, otimização de build com cache de camadas e uso de .dockerignore.
Separe configuração de código utilizando variáveis de ambiente com flags -e e arquivos .env no Docker.
Definição e orquestração de serviços com arquivos compose.yaml, portas e volumes declarativos.
Conectando múltiplos serviços na mesma rede com Docker Compose e comunicação por service name.
Investigação de falhas em containers com docker logs, top, stats, inspect, events e análise de exit codes.
Controle e isolamento de consumo de CPU e memória em containers Docker para evitar sobrecarga no host.
Boas práticas essenciais de segurança: privilégios, usuários não-root, imagens confiáveis e proteção do socket Docker.
Manutenção de disco e remoção segura de containers, imagens, volumes e redes não utilizados com comandos prune e df.
Laboratório prático: construa uma imagem Nginx com página customizada via Dockerfile, publique a porta e valide o funcionamento.
Prática com PostgreSQL em container: persistência de dados com volumes nomeados e variáveis de ambiente.
Projeto completo com Docker Compose: aplicação web, banco PostgreSQL, redes isoladas, volumes persistentes, healthcheck e troubleshooting.
Gostou desta trilha?