Learn Docker Help

Fundamentos de Imagens Docker πŸ“¦

╔══════════════════════════════════════════════════════════════════╗ β•‘ IMAGE FUNDAMENTALS MATRIX β•‘ β•‘ β•‘ β•‘ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β•‘ β•‘ β”‚ Layer │────▢│ Layer │────▢│ Layer β”‚ β•‘ β•‘ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β•‘ β•‘ β”‚ β”‚ β”‚ β•‘ β•‘ Base Image Dependencies App Code β•‘ β•‘ β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Conceitos Fundamentais 🧠

O que é uma Imagem Docker?

Uma imagem Docker é um pacote leve, autônomo e executável que inclui tudo necessário para rodar uma aplicação:

  • Código

  • Runtime

  • Bibliotecas

  • Variáveis de ambiente

  • Arquivos de configuração

Características Principais 🎯

╔════════════════════════════════════════════════════════════╗ β•‘ CARACTERÍSTICAS ESSENCIAIS β•‘ ╠════════════════════════════════════════════════════════════╣ β•‘ ✦ Imutabilidade β•‘ β•‘ ✦ Sistema de Camadas β•‘ β•‘ ✦ Compartilhamento de Recursos β•‘ β•‘ ✦ Portabilidade β•‘ β•‘ ✦ Versionamento β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Anatomia de uma Imagem πŸ”¬

Sistema de Camadas

  1. Base Layer

    • Sistema operacional mínimo

    • Bibliotecas essenciais

  2. Camadas Intermediárias

    • Dependências

    • Ferramentas

    • Configurações

  3. Camada de Aplicação

    • Código fonte

    • Assets

    • Configurações específicas

Tipos de Imagens 🏷️

1. Imagens Base

  • Alpine

  • Ubuntu

  • Debian

  • Scratch

2. Imagens de Runtime

  • Node.js

  • Python

  • Java

  • Go

3. Imagens de Aplicação

  • Nginx

  • MongoDB

  • Redis

  • PostgreSQL

Nomenclatura e Tags 🏷️

╔════════════════════════════════════════════════════════════╗ β•‘ ANATOMIA DE UM NOME DE IMAGEM β•‘ β•‘ β•‘ β•‘ registry.example.com/organization/image-name:tag β•‘ β•‘ └─── Registry β”€β”˜ └── Owner β”€β”€β”˜ └─ Name β”€β”˜ └─ Tag β”€β”˜ β•‘ β•‘ β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Convenções de Tags

  • latest: versão mais recente

  • 1.0.0: versão específica

  • stable: versão estável

  • alpine: baseada em Alpine Linux

Comandos Essenciais ⌨️

# Listar imagens locais docker images # Baixar uma imagem docker pull nginx:latest # Inspecionar uma imagem docker inspect nginx:latest # Remover uma imagem docker rmi nginx:latest # Mostrar histΓ³rico de camadas docker history nginx:latest

Boas Práticas πŸ“

DO's βœ…

  • Use tags específicas

  • Minimize o tamanho das imagens

  • Documente dependências

  • Utilize multi-stage builds

  • Mantenha imagens atualizadas

DON'Ts ❌

  • Evite latest em produção

  • Não armazene secrets

  • Não instale ferramentas desnecessárias

  • Não use imagens não oficiais sem verificação

  • Não ignore vulnerabilidades

Waifu Tips πŸ’‘

Próximos Passos 🎯

  1. Anatomia de uma Imagem

  2. Gerenciamento de Imagens

  3. Melhores Práticas

Checkpoint βœ…

Você agora entende:

  • [x] O que são imagens Docker

  • [x] Sistema de camadas

  • [x] Tipos de imagens

  • [x] Nomenclatura e tags

  • [x] Comandos básicos

  • [x] Boas práticas

15 abril 2025