O que é o Docker Compose?

Spread the love

Faaala pessoal beleza!
Nesse post vamos aprender o que é o Docker Compose. Apesar de ser possível e relativamente simples conectarmos dois contêineres Docker através da linha de comando usando o comando docker run quando tentamos aplicar esses conceitos à infraestruturas de contêineres mais complexas isso tende a se tornar difícil de manter. Especialmente por que precisamos subir cada um dos contêineres em uma ordem predefinida. Caso essa ordem não seja corretamente executada haverão falhas de comunicação.

Esse é o primeiro de uma série de posts e nela nós iremos inicializar um blog com WordPress e como vocês devem saber o WordPress precisa de um banco de dados MySQL. Logo precisaremos subir dois contêineres um com o WordPress e outro com o banco de dados que ele irá usar. Poderíamos perfeitamente adotar a estratégia de “lincar” contêineres criando um source e um receiver. Mas eles não teriam uma comunicação automática entre si. Cada contêiner é por padrão um processo isolado e por isso não possuem nenhuma comunicação um com o outro.

Comunicação Contêineres Docker

Para garantirmos que haja algum tipo de comunicação entre o WordPress e o MySQL nós precisamos definir alguma infraestrutura entre os dois. Atualmente nós podemos fazer isso de duas formas. Podemos configurar tudo manualmente via Docker Client na linha de comando ou podemos usar o Docker Compose.
Com a primeira abordagem nós precisaremos executar vários comandos em uma ordem específica e montar essa infraestrutura. Toda vez que precisarmos fazer isso precisaremos repetir esses mesmos comandos. E sinceramente quando o Docker surgiu as pessoas podem até ter feito isso mas atualmente acredito que ninguém mais faz isso.
Normalmente eles usam uma ferramenta intermediária pra fazer isso, no caso o Docker Compose.

O Docker Compose é uma ferramenta separada do Docker. Em ambientes Linux você instala essa ferramenta separadamente já no Windows o Docker Desktop já traz ela e o Kubernetes por padrão.

Quando estamos começando a conhecer o Docker Compose é meio confuso e você vai ficar na dúvida sobre quem está fazendo o quê. Sempre vai bater a dúvida se é o Docker Compose ou o Docker Client que está sendo executado. E eu posso te dizer que no fim das contas sempre é o Docker Client às vezes invocado diretamente e às vezes pelo Docker Compose. Na verdade, o Docker Compose é uma abstração sobre o Docker Client que pode ser instalado junto com o Docker.

Como vimos ele é usado para inicializar múltiplos contêineres Docker simultaneamente. Além disso ele automatiza e como podemos ver na imagem acima abstrai os comandos que nós usamos no Docker Client. Mas o seu propósito vai além disso e visa principalmente facilitar a inicialização de múltiplos contêineres simultaneamente e prover comunicação entre eles de forma automática. Na prática o Docker Compose pega os comandos do Docker e abstrai todos eles em um arquivo de configuração no diretório do nosso projeto chamado docker-compose.yml. Não é simplesmente copiar esses comandos no arquivo como um script. Na verdade, todos esses comandos são simplificados e ganham uma nova sintaxe bem mais simples (veremos isso melhor em posts futuros). Quando criamos esse arquivo dizemos ao Docker Client como proceder. Ele irá processar esse arquivo e criar todos os diferentes contêineres de acordo com cada uma das especificações definidas nele.

Na verdade, a estrutura do arquivo docker-compose.yml pode parecer complexa a princípio, mas funciona mais ou menos assim. O diagrama acima mostra essencialmente como será o nosso arquivo docker-compose.yml. No nosso exemplo é como se disséssemos ao Docker Compose crie dois contêineres pra mim um com o WordPress e outro com o MySQL. Cada um desses contêineres é chamado de service no Docker Compose falarei sobre isso melhor nos próximos posts. E nós definimos todos os detalhes sobre eles como qual base image usada, quais portas serão expostas, os volumes a serem montados, as variáveis de ambiente coisas do tipo.

A princípio isso pode parecer bem estranho, mas na prática é bem mais simples do que parece. E se você quer conhecer mais sobre Docker e Docker Compose eu recomendo baixar o meu e-Book gratuito Docker um guia Rápido e dar uma conferida numa playlist sobre o tema no meu canal no Youtube.


Baixe o Guia Docker grátis

Bom por esse post é isso no próximo instalaremos o Docker Compose e vamos começar a entender tudo isso em detalhes. A gente se vê no próximo post!!!

Treinamentos relacionados com este post












Leandro

Sou desenvolvedor de software a desde 2008, além de programar gosto de esportes de aventura como rapel, tirolesa, trilhas de bike, apreciador de cervejas, baladas, motos e do bom e velho Rock’n Roll também gosto de história, ficção científica e de tecnologia. Atualmente sou consultor de Agile Software Delivery na Erudio Training e instrutor na Udemy.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *