1.1 Conceitos básicos do Docker Compose
Docker Compose é uma ferramenta pra definir e rodar aplicações Docker com múltiplos containers. Com ela, dá pra descrever facilmente a arquitetura de uma aplicação. Isso é feito, assim como nos images do Docker, em um arquivo de texto compose.yml
, que segue certas regras. Esse arquivo permite descrever todos os containers, suas conexões, redes e configurações compartilhadas. Isso facilita iniciar uma aplicação com múltiplos containers e gerenciar todos os seus componentes.
Conceitos básicos do Docker Compose
- definição de serviços: O Docker Compose permite definir todos os componentes de uma aplicação (por exemplo, servidores web, bancos de dados, cache e outros serviços) em um único arquivo de configuração.
- aplicações com múltiplos containers: O Compose simplifica o início e a coordenação de aplicações que consistem em vários containers.
- automação de processos: Com o Compose, dá pra automatizar a implantação, o gerenciamento e o escalonamento de todos os containers que fazem parte da aplicação.
Por que usar o Docker Compose?
- facilidade no gerenciamento de aplicações complexas: Em aplicações modernas, geralmente são usados vários serviços rodando em containers separados. O Docker Compose facilita o gerenciamento desses serviços.
- consistência no ambiente: O Docker Compose garante a mesma configuração de ambiente para desenvolvimento, teste e produção, reduzindo a chance de erros causados por diferenças nas configurações.
- aceleração do desenvolvimento: Com o Compose, é fácil iniciar e parar todos os serviços necessários com um único comando, acelerando o processo de desenvolvimento e teste.
- escalabilidade: O Docker Compose permite escalar os serviços facilmente, aumentando o número de instâncias dos containers conforme necessário.
Importante!
Antes, o Docker Compose era um aplicativo separado, e todos os comandos começavam com as palavras «docker-compose …». Porém, a partir da versão 20 do Docker, o Compose foi integrado, e os comandos agora começam com as palavras «docker compose …».
Então, às vezes, na internet você pode encontrar exemplos com o formato antigo «docker-compose» e, outras vezes, com o novo «docker compose». Não se preocupe, ambos funcionam da mesma forma.
Também vale lembrar que o arquivo de configuração agora pode ser chamado tanto de docker-compose.yaml
quanto de compose.yaml
. Ambos os formatos são suportados e funcionam da mesma maneira, mas o compose.yaml
é usado nas versões mais recentes do Docker Compose.
1.3 Comandos principais do Docker Compose
1. Start da aplicação
Esse comando lê o arquivo compose.yaml
(ou docker-compose.yml
), cria e inicia todos os serviços definidos nele.
docker compose up
2. Parar a aplicação
Esse comando para e remove todos os containers, redes e volumes criados com o docker compose up
.
docker compose down
3. Visualizar logs
Esse comando exibe os logs de todos os serviços, facilitando o debug da aplicação.
docker compose logs
4. Reiniciar serviços
Esse comando reinicia todos ou serviços específicos, o que é útil ao fazer mudanças no código ou configuração.
docker compose restart
1.4 Usando Docker Compose
Vantagens de usar o Docker Compose
- facilidade de implementação: com Docker Compose dá pra implementar um app complexo com um único comando.
- suporte a dependências: o Compose gerencia automaticamente as dependências entre os serviços, garantindo a ordem certa de inicialização.
- isolamento de serviços: cada serviço roda no seu próprio container, isolando e reduzindo os riscos de conflito entre os serviços.
- flexibilidade: o Docker Compose suporta várias configurações pra desenvolvimento, teste e produção, facilitando o gerenciamento de ambientes.
Usos do Docker Compose
O Docker Compose é usado amplamente para:
- desenvolvimento: facilita a criação de um ambiente de desenvolvimento consistente que pode ser facilmente compartilhado com a equipe de devs.
- testes: cria rapidamente um ambiente de teste que é igual ao de produção.
- produção: simplifica a implementação e o gerenciamento de aplicações com múltiplos containers em ambientes de produção.
GO TO FULL VERSION