Escrevendo um Arquivo do Compose
Aprenda a sintaxe YAML de `docker-compose.yml` para definir serviços, redes e volumes.
Escrevendo um Arquivo do Compose é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Arquivo do Compose: a planta
Boas-vindas à escrita de arquivos do Docker Compose! O arquivo docker-compose.yml é a sua planta para definir e executar aplicações Docker compostas por vários contêineres.
Ele usa a sintaxe YAML para configurar os serviços, as redes e os volumes da sua aplicação em um único arquivo.

YAML: uma rápida revisão
Os arquivos do Docker Compose são escritos em YAML (YAML Ain't Markup Language). Esse é um padrão de serialização de dados fácil de entender.
- Pares chave-valor:
key: value - Listas: os itens começam com um hífen (
- item) - Indentação: essencial para definir a estrutura e a hierarquia. Use espaços, não tabulações!
A chave `version`
Todo arquivo docker-compose.yml começa com uma chave version. Ela especifica a versão do formato do arquivo do Compose, ajudando o Docker Compose a entender como interpretar seu arquivo.
Para a maioria das aplicações modernas, recomenda-se a versão '3.8' ou uma versão '3.x' semelhante.
version: '3.8'Definindo `services`
A seção services é onde o senhor define os contêineres individuais (serviços) que compõem sua aplicação. Cada serviço representa um componente, como um servidor web ou um banco de dados.
Em services, o senhor lista cada serviço usando um nome escolhido por si.
version: '3.8'
services:
web:
# Service configuration goes here
database:
# Another service's configuration`image` e `ports` do serviço
Dentro da definição de um serviço, image especifica qual imagem do Docker deve ser usada (por exemplo, nginx:latest). A chave ports associa as portas do contêiner às portas do hospedeiro, permitindo o acesso externo.
"80:80"associa a porta 80 do hospedeiro à porta 80 do contêiner.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"`volumes` do serviço
A chave volumes dentro de um serviço permite montar caminhos da máquina hospedeira no contêiner ou usar volumes nomeados para armazenamento persistente.
Este exemplo monta o diretório local ./app em /usr/src/app dentro do contêiner.
version: '3.8'
services:
app:
image: my-node-app
volumes:
- ./app:/usr/src/appVariáveis `environment` do serviço
Use a chave environment para passar variáveis de ambiente aos contêineres do seu serviço. Isso é essencial para configurações que podem mudar entre ambientes, como as strings de conexão com o banco de dados.
As variáveis podem ser listadas como pares chave-valor ou no formato de lista.
version: '3.8'
services:
backend:
image: my-api
environment:
- DATABASE_URL=postgres://user:pass@host:5432/db
- NODE_ENV=development`networks` e `volumes` no nível superior
Além de defini-los dentro dos serviços, você também pode declarar volumes nomeados e redes personalizados no nível superior do seu arquivo docker-compose.yml.
Isso permite definições mais organizadas e reutilizáveis para a persistência de dados e a comunicação entre contêineres.
version: '3.8'
services:
# ... service definitions ...
networks:
my_app_network:
# custom network configuration
volumes:
db_data:
# named volume configurationReunindo tudo
Aqui está um pequeno exemplo que combina o que aprendemos. Ele define um serviço web e um serviço de banco de dados, usando uma imagem, portas e um volume nomeado.
Observe como a indentação cria a estrutura.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- web_content:/usr/share/nginx/html
db:
image: postgres:13
environment:
- POSTGRES_DB=mydb
- POSTGRES_USER=user
- POSTGRES_PASSWORD=secret
volumes:
web_content:
db_data:Verificação do arquivo Compose
Qual dos seguintes trechos YAML define corretamente um serviço do Docker Compose chamado 'api' que usa a imagem 'myapi:1.0' e expõe a porta 3000 do contêiner na porta 8080 do host?
Recapitulação: fundamentos do arquivo Compose
Parabéns! Você aprendeu os fundamentos da escrita de um arquivo docker-compose.yml.
- Ele começa com uma
version. servicesdefine os componentes da sua aplicação.- Cada serviço usa uma
image, pode exporports, usarvolumespara persistência e definir variáveis deenvironment. networksevolumesno nível superior permitem configurações avançadas.
Dominar essa estrutura YAML é essencial para orquestrar aplicações com vários contêineres!
Perguntas Frequentes
A aula “Escrevendo um Arquivo do Compose” é grátis?
Sim — o texto completo de “Escrevendo um Arquivo do Compose” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Escrevendo um Arquivo do Compose”?
Aprenda a sintaxe YAML de `docker-compose.yml` para definir serviços, redes e volumes. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Escrevendo um Arquivo do Compose”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O que é o Docker Compose?
- Escrevendo um Arquivo do Compose
- Implantação de Aplicações com Vários Serviços
- Variáveis de ambiente e arquivos .env