Learn Docker Help

Gerenciamento de Imagens Docker ๐ŸŽฎ

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•— โ•‘ IMAGE MANAGEMENT MATRIX โ•‘ โ•‘ โ•‘ โ•‘ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ•‘ โ•‘ โ”‚ Pull โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚ Tag โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚ Push โ”‚ โ•‘ โ•‘ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ•‘ โ•‘ โ†‘ โ”‚ โ”‚ โ•‘ โ•‘ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ•‘ โ•‘ โ•‘ โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

Comandos Essenciais ๐Ÿ› ๏ธ

Gerenciamento Básico

# Listar imagens docker images # Baixar imagem docker pull nginx:latest # Remover imagem docker rmi nginx:latest # Remover todas imagens nรฃo utilizadas docker image prune

Tagging e Versionamento

# Criar tag docker tag nginx:latest meu-registry.com/nginx:v1.0 # Remover tag docker rmi meu-registry.com/nginx:v1.0 # Listar tags de uma imagem docker image inspect nginx --format='{{.RepoTags}}'

Sistema de Tags ๐Ÿท๏ธ

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•— โ•‘ TAG CONVENTIONS โ•‘ โ•‘ โ•‘ โ•‘ registry.example.com/org/app:1.0.0-alpine โ•‘ โ•‘ โ””โ”€โ”€โ”€ Registry โ”€โ”˜ โ””โ”€ Name โ”€โ”˜ โ””โ”€ Tag โ”€โ”˜ โ””โ”€ Variant โ”€โ”˜ โ•‘ โ•‘ โ•‘ โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

Convenções Comuns

  • latest: versão mais recente

  • 1.0.0: versão semântica

  • stable: versão estável

  • dev: versão desenvolvimento

  • alpine: variante específica

Registries e Distribuição ๐ŸŒ

Docker Hub

# Login no Docker Hub docker login # Push para Docker Hub docker push username/app:tag # Pull do Docker Hub docker pull username/app:tag

Registry Privado

# Login em registry privado docker login meu-registry.com # Push para registry privado docker push meu-registry.com/app:tag # Pull de registry privado docker pull meu-registry.com/app:tag

Otimização e Limpeza ๐Ÿงน

Limpeza de Sistema

# Remover imagens nรฃo utilizadas docker image prune -a # Remover imagens dangling docker image prune # Limpar todo o sistema docker system prune

Otimização de Espaço

# Verificar uso de espaรงo docker system df # Anรกlise detalhada docker system df -v

Boas Práticas โœจ

DO's โœ…

  • Use tags específicas em produção

  • Mantenha um registro de versões

  • Documente variantes de imagens

  • Implemente política de retenção

  • Automatize o processo de build/push

DON'Ts โŒ

  • Evite usar latest em produção

  • Não acumule imagens antigas

  • Não armazene dados sensíveis

  • Não ignore vulnerabilidades

  • Não deixe imagens sem tag

Automação e CI/CD ๐Ÿค–

GitHub Actions Example

steps: - uses: actions/checkout@v2 - name: Login to Registry run: docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_TOKEN }} - name: Build and Push run: | docker build -t app:${{ github.sha }} . docker push app:${{ github.sha }}

Waifu Tips ๐Ÿ’ก

Troubleshooting ๐Ÿ”ง

Problemas Comuns

  1. Pull Fails

    # Verificar conectividade docker info # Limpar cache DNS docker system prune --volumes
  2. Push Errors

    # Verificar autenticaรงรฃo docker login # Verificar permissรตes docker push app:tag

Próximos Passos ๐ŸŽฏ

  1. Operações com Containers

  2. Melhores Práticas

  3. Laboratório Prático

15 abril 2025