Skip to content
Latchkey

Packer vs Docker: imagens de máquina vs containers

O Packer constrói imagens de máquina (AMIs, imagens de VM) para muitas plataformas; o Docker constrói imagens de container - artefatos diferentes para alvos de deploy diferentes.

O Packer (HashiCorp) automatiza a construção de imagens de máquina idênticas - AMIs, imagens Azure, imagens de VM - a partir de uma única config de origem em múltiplas plataformas. O Docker constrói imagens de container executadas por um container engine. Eles não são tanto concorrentes quanto ferramentas para tipos de artefato diferentes: imagens de máquina completas vs containers em camadas.

PackerDocker
ArtefatoImagens de máquina (AMI, VM)Imagens de container
AlvoVMs, instâncias de cloudContainer runtimes
Modelo de bootImagem de OS completoProcesso em container
MultiplataformaMuitos buildersRegistries OCI
Melhor paraImagens golden VM/AMIApps containerizadas

No CI

Use o Docker quando você envia containers para um runtime ou Kubernetes. Use o Packer quando você assa imagens golden de VM ou cloud - por exemplo, pré-instalando tooling em uma AMI para que as instâncias iniciem prontas. Muitos pipelines usam ambos: Packer para a imagem base da instância e Docker para a aplicação dentro dela. Escolha pelo que sua infraestrutura de fato roda.

Acelere

Ambos os builds de imagem são pesados. Faça cache dos layers (Docker) e reutilize imagens base (Packer), e rode os builds no CI. Managed runners mais rápidos encurtam essas longas assagens de imagem.

O veredito

Fazendo deploy de containers: Docker. Assando imagens de máquina VM/cloud (AMIs): Packer. Eles miram artefatos diferentes e muitas vezes trabalham juntos - Packer para a imagem do host, Docker para a aplicação.

Guias relacionados