Docker Compose é uma ferramenta poderosa e popular usada para gerenciar e implantar aplicativos baseados em Docker. Ele permite definir, configurar e executar vários Docker contêineres como um único projeto, simplificando a implantação de aplicativos e garantindo a consistência entre os ambientes de desenvolvimento e produção.
Abaixo estão alguns conceitos e exemplos de Docker Compose:
Defina o projeto usando o arquivo docker-compose.yml
No docker-compose.yml
arquivo, você pode definir os serviços necessários para sua aplicação. Por exemplo, para implantar um aplicativo Web PHP com um banco de dados MySQL, você pode definir dois serviços da seguinte maneira:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "80:80"
volumes:
- ./app:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: my_database
No trecho de código acima, definimos dois serviços: web
e db
. O web
serviço usará o PHP 7.4 image com Apache, escutará na porta 80 e montará o ./app
diretório do host no /var/www/html
diretório no arquivo container. O db
serviço utilizará o MySQL 5.7 image e definirá algumas variáveis de ambiente necessárias para o banco de dados.
Usando Docker Compose o comando
Depois de definir o projeto no docker-compose.yml
arquivo, você pode usar Docker Compose comandos para gerenciar os serviços.
-
Iniciar o projeto:
docker-compose up
Este comando iniciará os contêineres dos serviços definidos no
docker-compose.yml
arquivo. -
Pare e remova os recipientes:
docker-compose down
Este comando para e remove todos os contêineres relacionados ao projeto.
-
Listar contêineres em execução:
docker-compose ps
Este comando exibirá o status dos contêineres no projeto.
-
Exibir logs de serviço:
docker-compose logs
Este comando mostra os logs dos serviços do projeto.
Variáveis de ambiente e personalização
Docker Compose permite usar variáveis de ambiente para customizar configurações para diferentes ambientes, como desenvolvimento e produção. Você pode usar variáveis de ambiente no docker-compose.yml
arquivo e definir seus valores nos .env
arquivos correspondentes.
Por exemplo, se você deseja definir uma variável de ambiente para a porta do web
serviço, pode adicionar uma linha ao .env
arquivo como esta:
WEB_PORT=8080
Então, no docker-compose.yml
arquivo, você pode usar esta variável de ambiente assim:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Ao executar o docker-compose up
comando, o web
serviço escutará na porta 8080 em vez da porta 80.
Integração com Docker o Swam
Se você deseja implantar seu aplicativo em um ambiente distribuído com vários nós, Docker Compose pode integrar com Docker Swarm. Isso permite que você gerencie serviços em vários nós em um Docker cluster.
Para usar essa integração, basta adicionar as opções --orchestrate
ou ao executar comandos or em um ambiente. --with-registry-auth
docker stack deploy
docker-compose up
Swarm
Docker Compose é uma ferramenta útil para desenvolvimento, teste e implantação de aplicativos fáceis e eficientes. Ele minimiza as diferenças entre os ambientes de desenvolvimento e produção, garante consistência no processo de desenvolvimento de software e aumenta a produtividade das equipes de desenvolvimento.