Questão de Sistemas Operacionais — Geral — INSTITUTO AOCP 2025
- Código
- qa701191
- Banca
- INSTITUTO AOCP
- Órgão
- TRE TO
- Ano
- 2025
- Cargo
- TJ
- Adocker run -d
- Bdocker start
- Cdocker exec -it
- Ddocker build -t
- Edocker pull
GabaritoA — docker run -d
Gabarito: letra A. O comando docker run -d cria e inicia um novo contêiner a partir de uma imagem, executando-o em segundo plano (modo detached), liberando o terminal para outras tarefas — exatamente o que o enunciado pede. A opção -d (de detach) é o que garante a execução contínua sem prender o terminal.
O Docker é uma plataforma de virtualização leve que empacota aplicações e suas dependências em contêineres. Diferente de máquinas virtuais, que virtualizam o hardware, os contêineres compartilham o kernel do sistema operacional host, tornando-os mais rápidos e eficientes. Para entender o comando correto, é preciso distinguir os dois momentos da vida de um contêiner: criar e iniciar. O comando docker run faz as duas coisas de uma vez: ele cria um contêiner a partir de uma imagem e o inicia imediatamente. Já o docker start apenas inicia um contêiner que já foi criado anteriormente (por exemplo, com docker create), mas não cria um novo a partir de uma imagem.
A questão pede especificamente "iniciar um contêiner em segundo plano a partir de uma imagem existente". Isso aponta diretamente para o docker run -d, pois é o comando que cria e inicia um contêiner novo a partir de uma imagem, com a flag -d para rodar em segundo plano. O docker start também inicia um contêiner, mas não a partir de uma imagem — ele parte de um contêiner já existente (parado). A pegadinha está em confundir docker run (cria + inicia) com docker start (apenas inicia um contêiner já criado).
Na prática, o comando seria algo como docker run -d nome-da-imagem. O Docker cria um contêiner a partir da imagem especificada, inicia-o e o mantém rodando em segundo plano, devolvendo o controle do terminal imediatamente. Isso é essencial para aplicações que devem rodar continuamente, como o processamento de relatórios de auditoria mencionado no enunciado, sem bloquear outras tarefas no servidor.
Guarde a distinção central: docker run = criar + iniciar (a partir de uma imagem) e docker start = iniciar um contêiner já existente. É exatamente nessa fronteira que as alternativas se dividem.
O comando docker run -d é o correto. Ele cria um novo contêiner a partir de uma imagem existente e o inicia em modo detached (segundo plano), graças à flag -d. Isso permite que a aplicação rode continuamente sem ocupar o terminal, liberando o servidor para outras tarefas. É o comando padrão para implantar e executar aplicações conteinerizadas em background.
O comando docker start inicia um contêiner que já foi criado anteriormente (por exemplo, com docker create ou após um docker stop). Ele não cria um contêiner a partir de uma imagem — parte de um contêiner existente que está parado. Como o enunciado pede "iniciar um contêiner a partir de uma imagem existente", o docker start não atende, pois não há criação a partir da imagem.
O comando docker exec -it executa um comando dentro de um contêiner já em execução, com terminal interativo (-it). Ele não inicia um contêiner nem cria um a partir de uma imagem. É usado para acessar o shell de um contêiner rodando, depurar ou executar comandos pontuais — não para iniciar a aplicação em segundo plano.
O comando docker build -t constrói uma imagem Docker a partir de um Dockerfile, atribuindo uma tag (-t) à imagem resultante. Ele não inicia contêineres — apenas cria a imagem que, posteriormente, será usada pelo docker run. A confusão aqui é entre construir a imagem (build) e executar o contêiner (run).
O comando docker pull baixa uma imagem de um registro (como o Docker Hub) para o host local. Ele apenas transfere a imagem para o computador, mas não a executa nem cria um contêiner. É um pré-requisito para o docker run, mas não inicia nada.
A banca explora a confusão entre docker run e docker start. O candidato que sabe que start inicia um contêiner pode marcar a letra B, esquecendo que o enunciado exige "a partir de uma imagem existente" — o que só o run faz, pois ele cria o contêiner a partir da imagem. O start apenas retoma um contêiner já criado. Fique atento: run = criar + iniciar; start = iniciar o que já existe.
Para fixar, monte mentalmente a sequência do ciclo de vida: docker pull (baixa a imagem) → docker run (cria e inicia o contêiner) → docker exec (entra no contêiner em execução) → docker stop (para) → docker start (reinicia o contêiner parado). Se a questão falar em "imagem", o comando é run; se falar em "contêiner já existente", é start.
Gabarito: letra A
Link permanente: /questoes/qa701191