Pular para conteúdo

Docker Certified Associate (DCA) — Plano de Estudos

Plano de 8 semanas baseado na estrutura oficial de domínios da certificação DCA (instalação/configuração, imagens, orquestração, rede, segurança e storage), com foco prático para acelerar retenção.

1) Visão geral da prova

  • Formato esperado: questões de múltipla escolha e cenários práticos/conceituais.
  • Duração alvo de estudo: 8 semanas.
  • Carga sugerida: 7 a 10 horas por semana.
  • Distribuição sugerida por domínio:
  • Orquestração (Swarm): 25%
  • Image Creation, Management and Registry: 20%
  • Installation and Configuration: 15%
  • Networking: 15%
  • Security: 15%
  • Storage and Volumes: 10%

2) Pré-requisitos (Semana 0)

Antes de começar a trilha:

  • Linux básico: processos, permissões, systemd, logs, rede.
  • CLI: pipes, redirecionamento, grep, awk, sed (nível essencial).
  • Conceitos de rede: IP, DNS, portas, bridge, NAT.
  • Git e YAML básico.

Ambiente de laboratório

Monte um ambiente simples para prática contínua:

  • 1 máquina principal Linux com Docker Engine.
  • (Opcional) 2 VMs extras para laboratório de Swarm.
  • Editor + terminal + acesso a Docker Hub/registry privado de testes.

3) Trilha de 8 semanas

Semana 1 — Installation & Configuration (parte 1)

Objetivo: dominar instalação e componentes do Docker.

  • Instalar Docker Engine em Linux.
  • Entender arquitetura: daemon, client, containerd, runc.
  • Configurar daemon (daemon.json).
  • Gerenciar lifecycle do serviço Docker com systemd.
  • Verificar versões e contexto (docker version, docker info, docker context ls).

Prática mínima (hands-on): - Instalar e validar Docker do zero. - Alterar configuração do daemon (ex.: log driver) e reiniciar. - Coletar troubleshooting básico de inicialização.

Semana 2 — Installation & Configuration (parte 2) + início de Images

Objetivo: automação e base de build.

  • Storage drivers e logging drivers (visão prática).
  • Namespace e cgroups (conceito aplicado).
  • Dockerfile: FROM, RUN, COPY, ADD, CMD, ENTRYPOINT, ENV, EXPOSE.
  • Diferença entre imagem e container.

Prática mínima: - Criar 3 imagens: app estático, API simples, imagem com variáveis de ambiente. - Comparar comportamentos de CMD vs ENTRYPOINT.

Semana 3 — Image Creation, Management and Registry

Objetivo: build eficiente e distribuição de imagens.

  • Camadas e cache de build.
  • Multi-stage builds.
  • Tagging e versionamento semântico.
  • Push/pull em registry.
  • Scan básico de vulnerabilidade e hardening inicial.

Prática mínima: - Refatorar Dockerfile para reduzir tamanho da imagem. - Publicar imagem versionada em registry. - Criar checklist de imagem “production-ready”.

Semana 4 — Networking

Objetivo: dominar conectividade entre containers e serviços.

  • Drivers: bridge, host, overlay, macvlan (conceitual + uso).
  • DNS interno do Docker.
  • Publicação de portas e exposição interna.
  • Conectividade multi-container.
  • Troubleshooting de rede (docker network inspect, exec, testes de porta).

Prática mínima: - Subir stack com frontend + backend + banco em redes separadas. - Validar comunicação permitida/bloqueada por design de rede.

Semana 5 — Storage and Volumes

Objetivo: persistência e ciclo de vida de dados.

  • Tipos de mount: volume, bind mount, tmpfs.
  • Backup/restore de volumes.
  • Compartilhamento de dados entre containers.
  • Noções de drivers de volume.

Prática mínima: - Simular perda de container e recuperação de dados via volume. - Exportar/importar volume com tar.

Semana 6 — Security

Objetivo: aplicar segurança no runtime e supply chain.

  • Least privilege e user namespace.
  • Capabilities e --privileged (quando evitar).
  • Secrets e configs (especialmente em Swarm).
  • Assinatura/confiança de imagens (conceitos).
  • Boas práticas de Dockerfile seguro.

Prática mínima: - Rodar containers como usuário não-root. - Remover capabilities desnecessárias. - Publicar versão hardenizada da imagem.

Semana 7 — Orchestration (Swarm)

Objetivo: administrar cluster e serviços.

  • docker swarm init/join.
  • Managers vs workers.
  • Services, tasks, replicas, constraints.
  • Rolling update, rollback e healthcheck.
  • Networks/volumes no contexto de Swarm.

Prática mínima: - Criar cluster pequeno (3 nós). - Deploy de serviço replicado com update progressivo. - Simular falha e rollback.

Semana 8 — Revisão final + simulados

Objetivo: consolidar conhecimento e estratégia de prova.

  • Revisão por domínio com foco em lacunas.
  • Simulados cronometrados.
  • Revisão de comandos críticos.
  • Treino de leitura rápida de cenários.

Prática mínima: - 2 simulados completos com análise pós-prova. - “Caderno de erros” com correções objetivas.


4) Rotina semanal recomendada

  • Dia 1 (90 min): teoria orientada ao domínio.
  • Dia 2 (120 min): laboratório guiado.
  • Dia 3 (90 min): laboratório livre + troubleshooting.
  • Dia 4 (60 min): revisão ativa (flashcards/checklist).
  • Dia 5 (60–90 min): mini simulado + revisão de erros.

5) Checklist de competências (pronto para prova)

Marque quando estiver confortável sem consulta:

  • [ ] Instalar, configurar e diagnosticar Docker Engine.
  • [ ] Criar Dockerfiles eficientes e seguros.
  • [ ] Gerenciar imagens, tags e registry.
  • [ ] Projetar redes de containers e resolver falhas.
  • [ ] Configurar persistência com volumes e backup/restore.
  • [ ] Aplicar práticas de segurança de runtime e imagem.
  • [ ] Operar Swarm com deploy, scale, update e rollback.
  • [ ] Interpretar cenários e escolher comando correto com rapidez.

6) Estratégia para os últimos 7 dias

  • Reduzir conteúdo novo e focar em revisão ativa.
  • Revisar comandos mais frequentes por domínio.
  • Executar pelo menos 1 lab completo integrando: imagem + rede + volume + segurança + serviço.
  • Simular prova em janela de tempo real.
  • Dormir bem no dia anterior (impacta muito em desempenho de prova técnica).

7) Comandos-chave para memorizar

docker version
docker info
docker system df
docker system prune

docker build -t repo/app:1.0 .
docker images
docker tag
docker push

docker run -d --name app -p 8080:80 app:1.0
docker exec -it app sh
docker logs -f app
docker inspect app

docker volume create dados
docker volume ls
docker volume inspect dados

docker network ls
docker network create minha-rede
docker network inspect minha-rede

docker swarm init
docker node ls
docker service create --name web --replicas 3 nginx
docker service ls
docker service ps web
docker service update --image nginx:stable web
docker service rollback web

8) Como medir evolução

Use uma escala simples semanal (0 a 5) por domínio:

  • 0 = não vi ainda
  • 1 = conheço termos
  • 2 = executo com cola
  • 3 = executo sem cola
  • 4 = explico e soluciono falhas
  • 5 = pronto para questão de cenário

Se algum domínio ficar abaixo de 3 na Semana 6, reajuste a Semana 7 para reforço.