0Pricing
Docker & DevOps Fundamentals · Aula

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 Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Docker & DevOps Fundamentals 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.

Escrevendo um Arquivo do Compose — ilustração 1

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/app

Variá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 configuration

Reunindo 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.
  • services define os componentes da sua aplicação.
  • Cada serviço usa uma image, pode expor ports, usar volumes para persistência e definir variáveis de environment.
  • networks e volumes no 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 Docker & DevOps Fundamentals, atualize para CoddyKit PRO. O curso de Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals?

Nenhuma experiência prévia é necessária. Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals?

Sim. Cada aula de Docker & DevOps Fundamentals 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

  1. O que é o Docker Compose?
  2. Escrevendo um Arquivo do Compose
  3. Implantação de Aplicações com Vários Serviços
  4. Variáveis de ambiente e arquivos .env
← Voltar para Docker & DevOps Fundamentals