Este site usa cookies para garantir que você obtenha a melhor experiência, caso tenha duvidas acesse a nossa Política de Privacidade

Aceitar!

Docker compose.

O que é o docker compose e para que ele serve ?.

Postado por metavops 6 de fevereiro de 2022.

O que é docker compose ?

Docker compose trata-se de uma ferramenta para a orquestração de containers da docker, em muitos casos ele já vem instalado por padrão junto do docker para utilização, mas se caso isso não ocorrer é possível instala-lo normalmente.
Uma das principais diferenças entre escrever um dockerfile comum e utilizar o docker compose, é de que no modo compose você tem a possibilidade de gerenciar mais de um container ao mesmo tempo, e a linguagem utilizada para escrever o arquivo de configuração é o YAML( Ain't Markup Language).
Caso queira saber mais sobre o docker compose acesse:
Docker compose reference.

Docker compose na pratica.

Neste exemplo vamos subir uma aplicação na qual vai depender de um web server e de um banco de dados para funcionar, nesse caso vamos utilizar o docker compose para subir ambos os containers e fazer com que ambos os containers trabalhem junto porem cada um fazendo sua função.
Para esse projeto vou subir uma aplicação chamada sysPass, para quem não conhece o sysPass é um potente gerenciador de senhas, para realizar uma instalação comum do sysPass você precisaria instalar diversos pacotes e você ainda teria que configurar manualmente alguns desses serviços o que poderia deixar a aplicação fora do ar caso tenha algum problema de dependência, configuração ou incompatibilidade entre pacotes.

Para utilização do docker compose, crie um arquivo chamado "docker-compose.yaml" ou "docker-compose.yml", pois tanto faz a extensão, pode ser ".yaml" ou ".yml" que vai funcionar normalmente.

juninho-tecnologia

Repare que ao criarmos o arquivo o visual studio code, ele já identifica automaticamente como um arquivo docker, e adiciona uma "flag" no arquivo com a logo do docker.

Agora digite o código abaixo dentro do arquivo criado:

version: '2'
services:
 app:
  container_name: syspass-app
  image: syspass/syspass:3.2.2
  restart: always
  ports:
  - "80"
  - "443"
  links:
  - db
  volumes:
  - syspass-config:/var/www/html/sysPass/app/config
  - syspass-backup:/var/www/html/sysPass/app/backup
  environment:
  - USE_SSL=yes
 db:
  container_name: syspass-db
  restart: always
  image: mariadb:10.2
  environment:
  - MYSQL_ROOT_PASSWORD=syspass
  ports:
  - "3306"
  volumes:
  - syspass-db:/var/lib/mysql

volumes:
 syspass-config: {}
 syspass-backup: {}
 syspass-db: {}

Após criar o arquivo e inserir o código como esta acima, digite o comando abaixo para subir os dois containers:
docker-compose -p syspass -f docker-compose.yaml up -d
juninho-tecnologia

Após digitar o comando acima, vemos que ambos os containers subiram sem erros, para verificarmos os containers em execução, basta digitar o comando:
docker-compose ps
juninho-tecnologia
Acima vemos também a porta onde os containers estão expostos para acesso externo, nesse caso vamos acessar a aplicação através da porta "52224" por meio da web, para acessar basta em seu navegador digitar:
https://localhost:52224/
ou
https://[IP DO HOST]:52224
OBS: a porta pode variar, pois a opção "-p" que usamos no comando para iniciar os containers ela "sorteia" uma porta para expor a aplicação, então pode ser que mude a porta cada vez que o container seja reinicializado.
juninho-tecnologia
Na imagem acima vemos que a aplicação já está disponível.

Caso queira parar os containers em execução, digite o comando abaixo:
docker-compose down juninho-tecnologia

Conclusão.

O docker compose é uma excelente ferramenta para orquestração e para utilização junto do docker swarm para criação de clusters e mater aplicações onde podem ser facilmente escalonas e com alta disponibilidade.

Deixe seu comentario ou sugestão sobre o post.