Questão de Sistemas Operacionais — Geral — VUNESP 2025
Sistemas Operacionais›Geral
Código
vu223112
Banca
VUNESP
Órgão
UNESP
Ano
2025
Cargo
V - - Doc ( )
Considere o seguinte comando da ferramenta Docker. docker run -d -p 80:8080/tcp nginx:alpine O comando executa um contêiner
Aem foreground.
Be vincula a porta TCP 80 do host à porta TCP 8080 do contêiner.
Ce bloqueia conexões na faixa de portas TCP 80 a 8080 do contêiner, como regra de segurança.
Dcuja imagem se chama nginx em um computador remoto na rede chamado alpine.
Ee mantém aberta sua interface STDIN, permitindo enviar dados ao contêiner pela entrada-padrão.
Revelar gabarito e comentário▾
GabaritoB — e vincula a porta TCP 80 do host à porta TCP 8080 do contêiner.
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: publicando portas com docker run -p
Gabarito: letra B. O comando docker run -d -p 80:8080/tcp nginx:alpine executa um contêiner em segundo plano (-d, de detached) e publica a porta TCP 80 do host, redirecionando o tráfego para a porta TCP 8080 do contêiner (-p 80:8080/tcp). A sintaxe -p [IP_host:]porta_host:porta_contêiner/protocolo é o mecanismo de mapeamento de portas do Docker, e é exatamente isso que a alternativa B descreve.
O Docker é uma plataforma de virtualização a nível de sistema operacional que empacota aplicações e suas dependências em contêineres — ambientes isolados que compartilham o kernel do host, mas possuem seu próprio sistema de arquivos, processos e rede. Quando você executa docker run, o Docker cria e inicia um contêiner a partir de uma imagem (neste caso, nginx:alpine, onde nginx é o nome da imagem e alpine é a tag, indicando a variante baseada na distribuição Alpine Linux).
O comando docker run tem várias opções que controlam o comportamento do contêiner. As duas usadas aqui são:
-d (ou --detach): executa o contêiner em segundo plano (background), liberando o terminal. Sem essa opção, o contêiner roda em foreground (primeiro plano), ocupando o terminal e exibindo os logs diretamente.
-p (ou --publish): publica uma porta do contêiner no host, criando um mapeamento. A sintaxe completa é -p [IP_do_host:]porta_do_host:porta_do_contêiner[/protocolo]. No comando, 80:8080/tcp significa: a porta 80 do host (onde o Docker escutará as conexões) é redirecionada para a porta 8080 do contêiner (onde o serviço, no caso o nginx, está escutando), usando o protocolo TCP.
Esse mapeamento é essencial porque, por padrão, os contêineres Docker têm uma rede isolada — eles não são acessíveis diretamente a partir do host ou da rede externa. A publicação de portas cria uma ponte: qualquer requisição que chegar à porta 80 do host será encaminhada para a porta 8080 do contêiner, permitindo que usuários externos acessem o serviço que roda dentro do contêiner.
A alternativa B é a única que descreve corretamente esse comportamento. As demais confundem conceitos: -d não é foreground (é o oposto), -p não bloqueia portas (é o contrário — abre/redireciona), nginx:alpine não é um host remoto (é imagem + tag), e nenhuma opção do comando mantém o STDIN aberto (isso seria feito com -i ou -it).
Guarde a distinção central: -p publica (mapeia) portas, não as bloqueia — e a ordem é sempre host:contêiner. É exatamente nessa inversão que as alternativas erradas tentam te enganar.
1-d: segundo plano
2-p: publica porta
3host:contêiner (80:8080)
4/tcp: protocolo
5nginx:alpine: imagem:tag
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que o comando executa o contêiner em foreground. Isso está errado: a opção -d (abreviação de --detach) faz exatamente o oposto — executa o contêiner em segundo plano (background), liberando o terminal para outros comandos. Para rodar em foreground, bastaria omitir o -d (ou usar docker run sem essa flag). A pegadinha aqui é inverter o significado da flag -d.
Alternativa B — ✅ Correta ⟵ GABARITO
Descreve com precisão o efeito de -p 80:8080/tcp: vincula a porta TCP 80 do host à porta TCP 8080 do contêiner. A sintaxe -p host:contêiner é o padrão do Docker para publicar portas, e o sufixo /tcp especifica o protocolo. Qualquer tráfego que chegar à porta 80 do host será redirecionado para a porta 8080 do contêiner, onde o nginx está escutando.
Alternativa C — ❌ Incorreta
Afirma que o comando bloqueia conexões na faixa de portas TCP 80 a 8080, como regra de segurança. Isso é o oposto do que -p faz: ele publica (abre/redireciona) uma porta específica, não bloqueia uma faixa. Bloquear portas seria feito com regras de firewall (como iptables ou ufw), não com docker run -p. A alternativa confunde o mapeamento de portas com controle de segurança de rede.
Alternativa D — ❌ Incorreta
Interpreta nginx:alpine como "imagem nginx em um computador remoto chamado alpine". Isso é um erro de leitura da sintaxe: nginx é o nome da imagem e alpine é a tag (versão/variante) da imagem. Não há referência a computador remoto ou rede — o comando usa a imagem local (ou baixa do registro público Docker Hub, se não estiver presente). A tag alpine indica que a imagem é baseada na distribuição Alpine Linux, conhecida por ser leve.
Alternativa E — ❌ Incorreta
Afirma que o comando mantém aberta a interface STDIN, permitindo enviar dados ao contêiner pela entrada-padrão. Isso não é verdade: para manter o STDIN aberto, seria necessário usar a opção -i (ou -it para interativo com terminal). O comando dado não inclui -i, então o STDIN não fica aberto. A alternativa confunde a flag -d (detached) com -i (interactive).
NÃO CAIA NESSA!
A banca explora a confusão entre as flags do docker run. A pegadinha clássica é inverter o significado de -d (detached = segundo plano, não foreground) e trocar o efeito de -p (publicar/mapear, não bloquear). Além disso, nginx:alpine é imagem + tag, nunca um host remoto. Memorize a sintaxe -p host:contêiner e o significado de cada flag — isso resolve a questão sem depender de decoreba.
PEGA ESSA DICA!
Para questões de Docker, monte uma tabela mental das flags mais cobradas: -d (detached/background), -i (STDIN aberto), -t (pseudo-TTY), -p (publicar porta), -v (volume), --name (nomear contêiner). E lembre: -p sempre segue a ordem host:contêiner — se a alternativa inverter essa ordem, está errada.