No primeiro artigo, explicamos sobre o conceito de Docker, agora vamos acompanhar o gerenciamento e deploy de imagens com o Docker Compose

Por Thiago Marques
O pai ta on!!
No último artigo falamos um pouco sobre os problemas que o docker veio para solucionar, como efetuar a instalação no nosso ambiente de laboratório, além de alguns comandos básicos para gerenciamento.
Agora falaremos sobre como fazer o deploy de forma manual de uma imagem, e como utilizar o docker compose para realizar o deploy da nossa aplicação de forma mais amigável.

Pull de imagens

Um dos recursos presentes no docker é o Docker Hub, que é um repositório com as imagens de containers criadas pela comunidade ou por empresas. Assim todas as vezes que rodamos o docker run, o software busca primeiramente se já existe uma imagem no repositório local (docker images), e em caso negativo faz a procura no i no docker hub e consequentemente o download da imagem.No backend do processo do download, o docker executa o docker pull, e na sequência roda o docker run.
]Em nosso laboratório vamos fazer o pull do tacacs_server disponibilizado pela openswitch. Isso pode ser feito após uma busca direta no site do docker hub por “tacacs_server”, ou direto na CLI com o comando:

Depois do pull, conseguimos verificar todas as imagens baixadas com o Docker images.

Perceba que com esse comando fazemos APENAS o download da imagem, e não a execução do container. Para isso iremos executar o docker run:

Onde:
-d: para o docker executar em segundo plano;
–name: para dar um nome para o container;
-p 49:49: para mapear a porta 49 externa (do host) na 49 interna (do container);

Com isso teremos nosso container criado:

Docker compose

Como vimos, realizar o deploy de uma máquina manualmente contém diversos parâmetros (para subir UM container e isso porque não fizemos o mapeamento de volumes). Imagine precisar realizar o deploy de uma aplicação com banco de dados, servidor web e balanceador. Errar em um comando pode impactar na aplicação como um todo.
O Docker compose, vem para sanar esse problema, pois consegue orquestrar múltiplos containers, tudo escrito em um arquivo em YAML (.yml), e nele colocamos tudo que queremos e precisamos para subir a aplicação, como um container para banco de dados com um volume persistente, um container web com exposição da porta HTTP etc.

Instalação
1 – Efetue o download do docker-compose:

2 – De permissão de execução ao arquivo

docker-compose.yml
Com o docker-compose instalado vamos a criação do arquivo .yml, e a explicação das linhas que ele contém.

Iniciamos com a versão 3, que atualmente é a mais recente.
Na sequência iniciamos a configuração do serviço que queremos subir.
O ‘tacacs’ aqui é apenas um nome, e poderia ser qualquer coisa, o que mais importa é a linha ‘image: openswitch/tacacs_server’, que de fato informa qual imagem vamos utilizar. Note que, o arquivo trabalha com indentação , assim MUITA atenção nos espaços.

O container_name, tem a mesma função o –name que utilizamos na linha de comando, assim como o ports, possui a mesma função do -p. A diferença aqui via para o restart, que basicamente vai reiniciar o container se ele ja estiver parado (eliminando a necessidade de fazer um prune), e os volumes.

Os volumes são mapeamentos que fazemos do que está no host para o container. Isso é feito para garantir que quando removermos, pararmos ou reiniciarmos o container as informações importantes não sejam perdidas (persistência). Em nosso exemplo vamos deixar persistentes o arquivo de configuração do tac_plus, e o arquivo de log. Adicionei também os timezones, pois na grande maioria das vezes o container sobe com o horário errado.
Utilização
1 – Crie uma pasta chamada ‘tacacs’ dentro de /opt:

2 – Nela baixe o arquivo abaixo:

3 – Crie um arquivo de log:

4 – Pare e remova o container antigo, e depois inicie o docker-compose em backend:

Com isso criamos nosso serviço de tacacs para o laboratório, e garantimos que mesmo se o container for parado ou excluído os logs e o arquivo de configuração será mantido.

That’s all folks! Be Happy!!!

OUTRAS PUBLICAÇÕES

On Premises vs Cloud

Por Cassius Oliveira Hoje em dia toda empresa precisa ser de alguma forma uma empresa de tecnologia, independentemente de seu tamanho e do setor de

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações