devterview_$ iniciar simulação

Imagem x container x camadas

FácilJúniorFundamentos

Pergunta

Qual a diferença entre uma imagem e um container Docker, e como as camadas afetam build e tamanho?

Resposta esperada

Uma imagem é um template imutável, empacotado em camadas empilhadas (cada instrução do Dockerfile — `RUN`, `COPY`, `ADD` — vira uma camada read-only). Um container é uma instância em execução dessa imagem, com uma fina camada gravável no topo pra o que ele escreve em runtime. Camadas são cacheadas por conteúdo: se nada mudou até a instrução N, o build reaproveita as camadas até ali. Por isso a ordem no Dockerfile importa — copiar `package.json` e rodar `install` ANTES de copiar o código-fonte faz o `install` só re-rodar quando as dependências mudam. Camadas também são compartilhadas entre imagens, economizando disco e download. `RUN` que instala e depois limpa em comandos separados não reduz o tamanho (a camada anterior já gravou os arquivos) — precisa ser no mesmo `RUN`.

Por que perguntam isso

Pergunta pleno de Docker. Sinais de domínio: 'copie package.json antes do código', e 'limpar em RUN separado não reduz tamanho'.

#imagem#container#camadas#cache
publicidade

Perguntas de acompanhamento

Relacionadas