Docker Compose: Noções básicas e uso

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.