Como usar o Docker Compose para definir e executar aplicativos multicontêineres

Por Gaspar Barancelli Junior em 04 de abril de 2024

O Docker Compose é uma ferramenta que permite definir e executar aplicativos Docker multicontêineres. Ele permite definir a configuração de vários contêineres em um único arquivo YAML e iniciar todos os contêineres com um único comando. Neste post, vamos ver alguns exemplos simples de como usar o Docker Compose.

Instalação do Docker Compose

Algumas distribuições do Docker, como Docker Desktop para Mac e Windows, já incluem o Docker Compose como parte da instalação. No entanto, em outras distribuições, você precisará instalá-lo separadamente.

Para instalar o Docker Compose no linux, abra o terminal e execute os seguintes comandos:

Ubuntu e Debian
sudo apt-get update
sudo apt-get install docker-compose-plugin
Para distribuições baseadas em RPM
sudo yum update
sudo yum install docker-compose-plugin

Agora, verifique se o Docker Compose foi instalado corretamente, digitando o seguinte comando no terminal ou prompt de comando:

docker-compose --version

Isso deve retornar a versão do Docker Compose que você acabou de instalar.

Exemplo de Docker Compose

Agora que o Docker Compose está instalado, vamos criar um exemplo simples. Vamos criar um aplicativo que consiste em um contêiner que executa o WordPress e outro contêiner que executa um banco de dados MySQL.

version: "3"
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
volumes:
  db_data:

Neste exemplo, definimos dois serviços db e wordpress. O serviço de banco de dados usa a imagem do MySQL 5.7, cria um volume para armazenar os dados do banco e define algumas variáveis de ambiente, como a senha do root, nome do banco de dados, usuário e senha.

O serviço do Wordpress depende do serviço de banco de dados e usa a imagem mais recente do Wordpress. Também define uma porta para acessar o Wordpress no host e algumas variáveis de ambiente, como o nome do host do banco de dados, usuário e senha.

Para executar este exemplo, salve-o em um arquivo chamado docker-compose.yml e execute o comando abaixo no mesmo diretório em que o arquivo está localizado:

docker-compose up

Isso irá baixar as imagens necessárias e iniciar os serviços. Quando o processo estiver concluído, você pode acessar o Wordpress em seu navegador em http://localhost:8000.

Se quisermos executar os contêineres em segundo plano, podemos adicionar a opção "-d" ao comando:

docker-compose up -d

Podemos parar os contêineres com o seguinte comando:

docker-compose down

Isso encerrará todos os contêineres e removerá todos os recursos associados a eles.

Conclusão

O Docker Compose é uma ferramenta poderosa que torna mais fácil definir e executar aplicativos Docker multicontêineres. Neste post, vimos um exemplo simples de como usar o Docker Compose para definir e executar um aplicativo que consiste em um contêiner WordPress e um contêiner MySQL. Com esses conceitos básicos, você pode expandir sua configuração para incluir outros contêineres e criar aplicativos mais complexos.

// Compartilhe esse Post