ANÚNCIO

~/questoes/devops

O que é um serviço no contexto do Docker Compose?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Para fixar

O que é um Serviço no Docker Compose

Conceito central

Um serviço no Docker Compose é a forma como você define um container com toda sua configuração (imagem, portas, variáveis de ambiente, volumes) em um único arquivo YAML. Cada serviço representa um componente da sua aplicação, como um banco de dados, API ou cache.

Por que essa resposta faz sentido

A alternativa correta define serviço como uma configuração declarativa de container. No Docker Compose, você não executa containers soltos - você define serviços no arquivo docker-compose.yml que, quando iniciados, criam os containers com todas as características especificadas.

Armadilhas comuns

  • Confundir 'serviço' com 'container' - o serviço é a definição, o container é a instância em execução
  • Pensar que um serviço precisa estar sempre conectado a um banco de dados externo - serviços podem ser qualquer componente da aplicação
  • Achar que serviço é apenas um protocolo ou ferramenta de rede - é uma abstração mais ampla que inclui configuração completa

Entenda as alternativas

A

Arquivo de log não tem nada a ver com serviços. Logs são registros de eventos dos containers em execução, não a definição do próprio serviço.

B

Banco de dados externo é um serviço que pode ser definido no Compose, mas não é o que define um serviço em si. Um serviço pode ser um banco de dados, mas também pode ser uma aplicação web ou qualquer outro componente.

C

Protocolo de comunicação descreve como máquinas trocam dados na rede. Docker Compose usa protocolos para conectar serviços, mas não é isso que um serviço é.

D

Exato! Um serviço é precisamente uma definição declarativa - você escreve uma vez no arquivo docker-compose.yml com a imagem, portas, variáveis e tudo mais que precisar. O Docker Compose se encarrega de criar o container com essas configurações.

Dica prática: Quando você escreve docker-compose.yml, cada bloco principal (web, db, redis, etc) é um serviço. Teste rodar `docker-compose ps` após `docker-compose up` para ver todos os serviços (containers) rodando.

Revise pensando: Se você tem uma aplicação com API, PostgreSQL e Redis, quantos serviços você precisaria definir no docker-compose.yml?