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

Grupo GCB S.A revolucionando o mercado financeiro em união com a AWS

Da área financeira de atuação comum, o Grupo GCB passou a buscar escalabilidade e inovação, através do uso intensivo de tecnologia e fortalecendo a parceria da AWS. Hoje, conta com um motor de originação e distribuição de crédito 100% digital que opera 24 horas por dia, 7 dias por semana.

EBS Snapshot

EBS Snapshot O pai ta on!! No ecossistema da Amazon Web Services (AWS), o Amazon Elastic Block Store (EBS) desempenha um papel fundamental no armazenamento

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