Questão de Sistemas Operacionais — Virtualização — FGV 2022
Sistemas Operacionais›Virtualização
Código
fg047166
Banca
FGV
Órgão
CGU
Ano
2022
Nível
Superior
Cargo
Auditor Federal de Finanças e Controle - Tecnologia da Informação
Uma das estratégias para reduzir o tamanho de imagens Docker consiste em:
Acombinar comandos RUN em um único comando;
Bsubstituir a imagem base por uma versão mais recente;
Cseparar comandos RUN complexos em comandos menores;
Dreordenar os comandos de forma que o cache seja utilizado com maior frequência;
Ecompactar arquivos a serem copiados para a imagem e descompactá-los durante a sua geração
Revelar gabarito e comentário▾
GabaritoA — combinar comandos RUN em um único comando;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Docker – Redução de Tamanho de Imagens
Gabarito: alternativa A. Combinar comandos RUN em um único comando reduz o número de camadas da imagem, diminuindo seu tamanho. Cada instrução RUN cria uma nova camada temporária; ao unir vários comandos em um só (com && ou scripts), evita-se camadas intermediárias desnecessárias, prática recomendada pela documentação oficial do Docker.
A banca testa o conhecimento sobre o layer caching e a estrutura de camadas das imagens Docker. A chave da questão é entender que camadas extras aumentam o tamanho, e combiná-las é uma estratégia direta de redução.
1Combinar RUNs (&&)
2Usar .dockerignore
3Imagem base enxuta (alpine)
4Multi-stage build
5Remover arquivos temporários
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
Combinar comandos RUN em um único comando reduz o número de camadas. Por exemplo, RUN apt-get update && apt-get install -y pacote gera uma só camada, enquanto dois RUN separados gerariam duas camadas, cada uma ocupando espaço.
Alternativa B — ❌ Incorreta
Substituir a imagem base por uma versão mais recente pode trazer atualizações, mas não é uma estratégia focada em redução de tamanho; versões mais recentes podem ser até maiores. O tamanho da imagem base não é alterado por essa troca.
Alternativa C — ❌ Incorreta
Separar comandos RUN complexos em comandos menores aumenta o número de camadas, o que aumenta o tamanho da imagem, contrariando o objetivo.
Alternativa D — ❌ Incorreta
Reordenar comandos para aproveitar o cache melhora a velocidade de build, mas não reduz o tamanho final da imagem. O cache evita reconstruir camadas inalteradas, mas não elimina camadas.
Alternativa E — ❌ Incorreta
Compactar arquivos e depois descompactá-los durante o build geralmente adiciona uma camada extra (a descompactação) e pode até aumentar o tamanho, além de não ser uma prática comum para redução – o ideal é evitar arquivos desnecessários.
NÃO CAIA NESSA!
A alternativa D pode parecer atraente (reordenar para cache), mas a pergunta é sobre redução de tamanho, não sobre otimização de build. Cache não elimina camadas, apenas as reaproveita. Já a alternativa E (compactar) é intuitiva, mas no Docker o ato de descompactar gera uma camada extra, anulando a economia.
💡 Dica: Para fixar: cada comando RUN, COPY, ADD cria uma camada. Estratégias para reduzir tamanho: (1) combinar RUN; (2) usar imagens base slim ou alpine; (3) limpar arquivos temporários no mesmo RUN; (4) usar .dockerignore. Nunca separe comandos RUN se a intenção é economizar espaço.