Pular para o conteúdo principal

Questão de Sistemas Operacionais — Contêineres (Docker, Kubernetes, etc.) — VUNESP 2024

Sistemas OperacionaisContêineres (Docker, Kubernetes, etc.)
Código
vu212375
Banca
VUNESP
Órgão
SPTrans
Ano
2024
Cargo
Ana Info ( )
Considere o seguinte comando da interface de linha de comandos (CLI) da ferramenta Docker.   docker cp id:/var/logs/log.txt /tmp/app_logs   Esse comando tem por objetivo copiar um arquivo
  1. Ado container identificado por id para um caminho local do host Docker, sem excluir o arquivo original.
  2. Bde um caminho local do host Docker para o container identificado por id, sem excluir o arquivo original.
  3. Cdo container identificado por id para um caminho local do host Docker, excluindo o arquivo original.
  4. Dde um caminho local do host Docker para o container identificado por id, excluindo o arquivo original.
  5. Edo container identificado por id para outro caminho dentro do próprio container, excluindo o arquivo original.
Revelar gabarito e comentário

GabaritoA — do container identificado por id para um caminho local do host Docker, sem excluir o arquivo original.

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 cp: copiando arquivos entre container e host

Gabarito: letra A. O comando docker cp id:/var/logs/log.txt /tmp/app_logs copia o arquivo do container (identificado por id) para o host Docker, no caminho /tmp/app_logs, sem excluir o arquivo original — o cp é uma operação de cópia, não de movimentação. A sintaxe do docker cp é docker cp [OPÇÕES] CONTAINER:ORIGEM DESTINO (ou docker cp [OPÇÕES] ORIGEM CONTAINER:DESTINO), e a direção é determinada pela posição do identificador do container com o prefixo :.

O docker cp é o comando da CLI do Docker usado para transferir arquivos entre o sistema de arquivos de um container e o sistema de arquivos do host. Ele funciona de forma análoga ao comando cp do Linux, mas opera entre dois mundos distintos: o filesystem do container (que é isolado, mas acessível via o daemon do Docker) e o filesystem do host. A sintaxe básica é:

docker cp [OPÇÕES] CONTAINER:ORIGEM DESTINO
docker cp [OPÇÕES] ORIGEM CONTAINER:DESTINO

A primeira forma copia do container para o host; a segunda, do host para o container. O que decide a direção é qual lado tem o prefixo CONTAINER: — o lado que tem o nome/ID do container seguido de dois-pontos é a origem ou o destino que está dentro do container. No comando da questão, id:/var/logs/log.txt é o lado do container (origem) e /tmp/app_logs é o lado do host (destino).

O comportamento de não excluir o arquivo original é inerente ao cp (copy): ele cria uma cópia no destino, preservando o arquivo de origem. Para mover (copiar e excluir o original), o comando seria mv (move). Essa distinção é clássica em provas: cp = cópia (preserva origem), mv = move (remove origem).

Na prática, imagine que você tem um container rodando uma aplicação que gera logs em /var/logs/log.txt. Para inspecionar esse log no seu host (por exemplo, para analisar com ferramentas locais), você executa docker cp id:/var/logs/log.txt /tmp/app_logs. O arquivo é copiado para /tmp/app_logs no host, e o container continua com o arquivo original intacto — o container não é afetado. Se você quisesse mover o arquivo (removê-lo do container), precisaria de um comando diferente, como docker exec id mv /var/logs/log.txt /tmp/... (mas isso moveria dentro do container) ou copiar e depois remover manualmente.

A pegadinha que a banca explora aqui é dupla: (1) inverter a direção da cópia (container → host versus host → container) e (2) trocar o comportamento de cópia (preserva original) por movimentação (exclui original). O candidato que decora a sintaxe sem entender a semântica do cp pode facilmente marcar a letra B (direção invertida) ou a letra C (direção certa, mas com exclusão).

Guarde o critério decisivo: o lado com CONTAINER: indica onde está o arquivo de origem/destino dentro do container; o cp sempre preserva o original. É exatamente nesses dois eixos — direção e preservação — que as alternativas se dividem.

  1. 1Lado com CONTAINER:
  2. 2Indica arquivo no container
  3. 3cp preserva o original
  4. 4mv excluiria o original
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

O comando docker cp id:/var/logs/log.txt /tmp/app_logs copia o arquivo do container (lado id:) para o host (lado /tmp/app_logs), sem excluir o arquivo original — pois cp é cópia, não move. A alternativa espelha exatamente a sintaxe e a semântica do comando.

Alternativa B — ❌ Incorreta

Inverte a direção da cópia. O comando copia do container para o host, não do host para o container. Para copiar do host para o container, a sintaxe seria docker cp /tmp/app_logs id:/var/logs/log.txt (origem no host, destino no container). A alternativa confunde a ordem dos argumentos.

Alternativa C — ❌ Incorreta

Acerta a direção (container → host), mas erra o comportamento: o cp não exclui o arquivo original. A exclusão do original é característica do mv (move), não do cp (copy). A alternativa troca o verbo "copiar" por "mover" implicitamente.

Alternativa D — ❌ Incorreta

Erra dois pontos: inverte a direção (host → container, quando na verdade é container → host) e afirma que exclui o arquivo original (o cp preserva). É a combinação dos dois erros das alternativas B e C.

Alternativa E — ❌ Incorreta

Erra completamente o escopo da operação. O docker cp transfere arquivos entre o container e o host (ou entre containers), não entre dois caminhos dentro do mesmo container. Para copiar dentro do próprio container, usaríamos docker exec id cp /origem /destino. Além disso, o cp não exclui o original.

NÃO CAIA NESSA!

A banca explora a confusão entre direção (container ↔ host) e entre copiar (cp, preserva) e mover (mv, exclui). No comando, o lado com CONTAINER: (id:) é sempre o lado do container — se ele aparece como primeiro argumento, a origem está no container; se aparece como segundo, o destino é o container. E lembre: cp nunca apaga o original — isso é papel do mv. Com esse par de critérios na cabeça, você elimina as quatro distratoras de uma vez.

Gabarito: letra A

Link permanente: /questoes/vu212375