2,979 leituras
2,979 leituras

Aqui estão alguns hacks do Docker que mudaram minha vida

por Pratik Pathak4m2025/05/01
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

O Docker é uma ferramenta poderosa para construir e gerenciar aplicativos baseados no Docker. Tornou-se parte da minha rotina diária, e já mal penso nisso.
featured image - Aqui estão alguns hacks do Docker que mudaram minha vida
Pratik Pathak HackerNoon profile picture

Ok, vamos quebrar essa evolução do Docker. É selvagem como as coisas mudam.


Lembre-se quando o Docker se sentiu como... lutando com um octopus grumpy? Tantos comandos, tantos conceitos. Construir, executar, empurrar, puxar, volumes, redes... minha cabeça estava girando.deveria, mas sempre se sentiu um pouco chato, um pouco... cheio de fricção.docker ps -aDesesperadamente tentando lembrarUmcomando da semana passada.


Então, lentamente, as coisas começaram a clicar.Não um grande momento de eureka, mas uma série de pequenas descobertas "aha!" Pequenos truques, otimizações, ajustes de fluxo de trabalho. Hacks, eu acho? E honestamente, eles entraram em minha rotina diária tanto que eu mal penso neles mais.Como faço as coisas.


Aqui estão os jogadores que mudaram:

Terminal Aliases: The Sanity Savers ️

Primeira grande vitória?Aliases.Seriamente. ♂️ Por que eu passei meses digitandodocker-compose up -d --buildoudocker psde novo e de novo? configurando aliases simples em meu.bashrcou.zshrcFoi uma revelação.

# My sanity savers
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'
alias dcb='docker-compose build'
alias dcr='docker-compose run --rm' # For running one-off commands
alias dps='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias dip='docker image prune -f'  # Prune dangling images
alias dvp='docker volume prune -f' # Prune unused volumes
alias dsp='docker system prune -af' # The big cleanup! 💥


Simplesmente tipificandodcuAh, os milissegundos salvos!Parece trivial, mas multiplique isso por dezenas de vezes por dia... acrescenta.


Obtenha a cheatsheet final do docker daqui:Cheatsheet do Docker

2 - O Poderoso.dockerignoreArquivo da tag: Slimming Down Builds

Depois veio o.dockerignoreOutro momento "duh" eu sabia sobre.gitignoreClaro, mas inicialmente eu não percebi o quão crucial.dockerignoreé para o desempenho de construção. Minhas primeiras construções do Docker foramtão lentaPorque o contexto de construção estava enviandoTudoMais sobre o Docker Daemon.node_modules, logs, arquivos temporários, artefatos de construção local... tudo!


Criando uma adequada.dockerignorearquivo, listando todo o lixo que eu não precisavapor dentroO processo de construção de imagens? De repente, as construções foram mais rápidas. As imagens eram menores (às vezes dramaticamente assim).Esse, ignore o resto." Menos confusão, loop de feedback mais rápido. beijo do chef! 👌

Construções em várias etapas: Lean, Mean Production Machines ➡️

Multi-stage builds... ok, este parecia um pouco mais avançado no início. O conceito é brilhante, no entanto.

  • Etapa 1: Use uma imagem de base com todas as ferramentas de construção, compiladores, SDKs e dependências necessárias para criar o artefato da aplicação (como um binário compilado ou JavaScript em bundle).
  • Etapa 2: Comece uma nova, limpa, mínima imagem de base (como alpina ou desconfiada).
  • Copiar: apenas copiar o artefato final da primeira etapa para esta segunda etapa limpa.


O resultado? imagens de produção minúsculas! em vez de enviar imagens inchadas com ferramentas de construção e dependências de desenvolvedores (que também são um risco de segurança!), Eu envio imagens magras contendoDemorou um pouco para envolver minha cabeça em torno da sintaxe, mas wow, a diferença no tamanho da imagem e na postura de segurança é enorme.

Docker Compose Overrides: Taming Environments ️

Vamos falarDocker Compose overridearquivos. Gerenciamento de diferentes ambientes costumava ser uma dor. Dev precisa de volumes montados para carregamento de código ao vivo, portas de depuração abertas. Prod precisa de variáveis de ambiente diferentes, talvez limites de recursos mais rigorosos, talvez um ponto de entrada diferente. Tentando gerenciar isso com umdocker-compose.ymlfoi confuso, envolvendo seções comentadas ou complexasifbaseadas em variáveis ambientais.


Descobrindodocker-compose.override.ymlfoi pura bênção. Você tem sua basedocker-compose.ymlcom a configuração comum. Em seguida, você criadocker-compose.override.yml(que geralmente são ignorados por.gitignore( ) para os seus ajustes de desenvolvimento local – montagem de diretórios de código, exposição de diferentes portas, adição de ferramentas de depuração.overrideVocê pode até mesmo ter arquivos específicos comodocker-compose.prod.ymlE usar o-fA Bandeira:docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d. separação limpa de preocupações. Não mais acidentes de configurações de dev!

Limpar regularmente: Mantenha o sistema limpo ✨

Por fim, o hábito deregular cleanupDocker pode acumularTão muitoImagens ameaçadoras (camadas desativadas de edições anteriores), volumes não usados, contêineres parados, caches de edições antigas... Meu espaço em disco costumava desaparecer misteriosamente.


Entrar no ritmo da corrida periódicadocker system prune -af(a abordagem agressiva) ou a mais direcionadadocker image prune, emdocker volume prune, emdocker network pruneedocker builder pruneEle mantém as coisas funcionando sem problemas, evita problemas estranhos de cache ("por que minha mudança não aparece?!"), e libera gigabytes preciosos. Um espaço de trabalho limpo, uma mente limpa, certo? ♂️ Correrdsp(O meu aliado paradocker system prune -af) é agora uma rotina satisfatória, quase terapêutica.


Então sim, estes não são apenas "hacks" mais. Eles estão enraizados. Eles são memória muscular. Aliases voam dos meus dedos sem pensar..dockerignoreé um dos primeiros arquivos que eu criei. as edições de várias etapas são o padrão para qualquer coisa que possa estar a viver. As sobreposições compostas lidam com as diferenças ambientais de forma suave.


O Docker passou de ser aquele octopus grumpy a um assistente poderoso e simplificado. Está saindo do meu caminho agora. as construções são mais rápidas, as implementações são mais suaves, meu espaço em disco é mais feliz, e honestamente,Eu souNão é apenas sobre o Docker em si; é sobre como dominar esses pequenos detalhes suavizou todo o meu fluxo de trabalho de desenvolvimento e implantação.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks