Skip to content

leonel-the13/inseption

Repository files navigation

Inseption: Guia de Estudos e Projeto Docker

Sumário


🗓 Dia 1 (Segunda-feira): Fundamentos essenciais

Objetivo: Compreender bem Docker, Dockerfile, Compose e Makefile

📘 Teoria

  • Conceitos principais: container vs imagem vs VM
  • Dockerfile: comandos (FROM, RUN, CMD, ENTRYPOINT, ENV, EXPOSE, VOLUME)
  • Docker Compose: estrutura e sintaxe do docker-compose.yml
  • PID 1: Entenda o PID 1 e por que loops infinitos são proibidos
  • Makefile: estrutura básica, targets como up, down, clean

🧪 Prática

  • Criar um container Docker simples com Alpine (docker build)
  • Criar um docker-compose.yml com um serviço "hello"
  • Criar um Makefile que executa docker-compose up e down

🗓 Dia 2 (Terça-feira): Rede, volumes e boas práticas

Objetivo: Aprender a conectar containers e usar volumes corretamente

📘 Teoria

  • Redes no Docker: (bridge customizada)
  • Comunicação entre containers: por hostname (sem --link)
  • Volumes: nomeados e bind mounts

🧪 Prática

  • Criar uma rede Docker personalizada via docker-compose
  • Criar um volume nomeado e montar dentro do container
  • Testar comunicação entre dois containers com ping

🗓 Dia 3 (Quarta-feira): Servidor MariaDB

Objetivo: Criar o container do banco de dados MariaDB com volume

📘 Teoria

  • O que é MariaDB e como configurá-lo (instalação manual em Alpine/Debian)
  • Scripts de inicialização (.sql)
  • Persistência de dados com volumes

🧪 Prática

  • Criar Dockerfile para MariaDB (sem imagem pronta)
  • Criar volume para persistir os dados
  • Testar conexão com banco (mysql -u user -p dentro do container)

🗓 Dia 4 (Quinta-feira): WordPress com PHP-FPM

Objetivo: Instalar o WordPress manualmente com PHP-FPM

📘 Teoria

  • Diferença entre PHP-FPM e Apache
  • Estrutura do WordPress
  • Configuração do wp-config.php

🧪 Prática

  • Baixar o WordPress e copiar para o container
  • Configurar php-fpm no Dockerfile (sem nginx)
  • Criar volume com os arquivos do WordPress
  • Testar o serviço acessando diretamente com PHP CLI

🗓 Dia 5 (Sexta-feira): NGINX com TLS

Objetivo: Criar o container do NGINX e configurar HTTPS

📘 Teoria

  • Configuração de NGINX com server, ssl_certificate, ssl_protocols
  • Geração de certificados TLS com openssl (autoassinado)
  • Redirecionamento HTTP → HTTPS

🧪 Prática

  • Criar Dockerfile do NGINX com Alpine/Debian
  • Copiar certificado TLS gerado manualmente
  • Configurar default.conf para redirecionar ao PHP-FPM
  • Testar HTTPS localmente (curl -k https://...)

🗓 Dia 6 (Sábado): Integração completa e variáveis de ambiente

Objetivo: Integrar todos os serviços e aplicar práticas de segurança

📘 Teoria

  • .env e variáveis no docker-compose
  • Docker secrets (opcional)
  • Segurança: sem senhas no Dockerfile

🧪 Prática

  • Criar .env com variáveis de usuário, senha, DB, etc.

  • Atualizar todos os docker-compose.yml e Dockerfiles para usar ENV

  • Criar estrutura de pastas:

    srcs/
      ├── mariadb/
      ├── wordpress/
      ├── nginx/
    
  • Colocar volumes em /home/login/data

  • Adicionar restart: always em todos os containers

  • Editar /etc/hosts para login.42.fr


🗓 Dia 7 (Domingo): Testes finais e documentação

Objetivo: Garantir que tudo funciona, limpar, e preparar para entrega

✅ Checklist

  • WordPress acessível via https://login.42.fr
  • NGINX só escutando na porta 443 com TLSv1.2 ou 1.3
  • Admin WordPress com nome seguro (sem “admin”)
  • Containers se comunicando apenas via rede customizada
  • Sem uso de tail, sleep, while true, etc.
  • Tudo controlado pelo Makefile

📘 Documentação

  • Escrever um README explicando como rodar o projeto
  • Comentar o docker-compose.yml para facilitar leitura

About

Docker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors