oneDAY

Assim como já acontece em tecnologias relacionais como SQL Server, PostgreSQL e MySQL, soluções NoSQL como o MongoDB e o Redis também contam com suporte ao Docker. Mas, do ponto de vista prático, qual seria vantagem na utilização de containers em tais situações?

Containers permitem que aplicações sejam executadas de forma isolada, o que contribui para descomplicar a montagem de ambientes de desenvolvimento e testes. Há inclusive a possibilidade de execução num computador de múltiplas versões de um mesmo serviço, cada uma em um container separado (evitando assim o trabalho moroso de instalação e desinstalação de diferentes releases de um mesmo produto).

Além disso, o processo envolvendo o download de uma imagem Docker e a geração/execução de um container resultará em uma economia bastante significativa de tempo. A ativação de um servidor de banco de dados a partir de um container leva segundos, muito diferente do processo convencional de instalação (que pode se estender por minutos ou até mesmo horas, em casos como o do SQL Server).

O objetivo deste artigo é demonstrar a execução do MongoDB e do Redis a partir de containers Docker, enfatizando com isto a simplicidade e a agilidade que esta técnica pode oferecer a desenvolvedores de software.

 

Pré-requisitos

O ambiente utilizado neste artigo já foi descrito em outro post que publiquei anteriormente, sobre a utilização do SQL Server em containers. Para maiores detalhes sobre as configurações envolvendo o uso do Docker no Windows 10 acesse o link a seguir:

.NET + SQL Server 2017 – Parte 1: executando o SQL Server em um container Docker

 

MongoDB + Docker

O primeiro passo para utilização do MongoDB com Docker será baixar a imagem mais recente desta solução NoSQL (disponibilizada no Docker Hub como mongo), executando para isto a seguinte instrução no PowerShell:

docker pull mongo

O comando docker images exibirá então a imagem mongo:

Executar finalmente a instrução a seguir para geração de um container baseado na imagem baixada para o MongoDB:

docker run –name testemongo -p 17017:27017 -d mongo

Em que:

  • O atributo –name especifica o nome do container a ser gerado (testemongo);
  • O atributo -p permite configurar a porta no Windows (17017) em que acontecerá a comunicação com o MongoDB, a qual será mapeada para a porta default (27017) deste NoSQL dentro do container;
  • Quanto ao atributo -d, neste parâmetro será indicada a imagem utilizada como base para a criação do container (mongo).

Já o comando docker ps -a listará o container gerado neste último passo (testemongo):

Após estes procedimentos teremos um servidor do MongoDB executando na porta 17017. Outras opções para a configuração de containers podem ser encontradas no próprio repositório oficial do MongoDB no Docker Hub.

Uma alternativa para se testar esta nova instância seria o utilitário Robo 3T, ferramenta gráfica para gerenciamento do MongoDB. A configuração deste utilitário é bastante simples, como indicado a seguir:

 

Redis + Docker

Muito utilizado para cache em aplicações Web, o Redis não conta oficialmente com uma versão para Windows. Esta limitação está documentada inclusive na página de downloads desta solução:

The Redis project does not officially support Windows. However, the Microsoft Open Tech group develops and maintains this Windows port targeting Win64.

Uma possibilidade para uso de uma versão oficial está na geração de um container Docker. O comando a seguir criará uma nova estrutura deste tipo — a porta default é 6379, baixando a imagem correspondente caso a mesma ainda não exista na máquina (alternativamente, o comando docker pull redis poderia ser acionado num primeiro momento):

docker run –name testeredis -p 6379:6379 -d redis

O comando docker ps -a trará o container gerado para uso do Redis (testeredis):

Um servidor Redis estará executando na porta 6379 logo após a conclusão destes procedimentos. Outras opções envolvendo a configuração de containers Redis estão no próprio repositório oficial dessa solução no Docker Hub.

Testes deste novo container podem ser realizados por meio do Redis Desktop Manager, ferramenta gratuita para gerenciamento de servidores Redis. A configuração para o exemplo desta seção é bastante simples, conforme demonstrado a seguir:

Caso tenha interesse em conhecer mais sobre MongoDB e Redis, organizei no próximo link diversos conteúdos gratuitos de uso destas tecnologias NoSQL em aplicações .NET Core 2.0 (incluindo vídeos e projetos de exemplo):

.NET Core 2.0 + NoSQL: exemplos utilizando MongoDB, DocumentDB e Redis

 


Renato Groffe

facebook.com/renatogroffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

 

Deixe um comentário