Nesse tutorial, você vai aprender como instalar o MongoDB com Compass usando Docker!
Você aprenderá como criar e rodar Container no Docker contendo o MongoDB. Também vamos utilizar ferramentas do próprio Docker para criar uma rede. Dessa forma, permitiremos a comunicação entre o Compass e o MongoDB. Além disso, você aprenderá a criar volume no Docker, para persistir dados do nosso MongoDB. E tudo isso na prática, passo a passo e de forma simples!
Este tutorial também possuí sua versão em vídeo no Canal da Homehost no Youtube!
Tópicos
- O que são o MongoDB, o Compass e o Docker?
- Instalação do MongoDB com Compass usando Docker
- Conclusão
O que são o MongoDB, o Compass e o Docker?
MongoDB e Compass
O MongoDB, é um banco de dados de código aberto(Open Source) orientado a Documentos. Ele é um Banco de Dados Não Relacional, também conhecido como NoSQL. Ou seja, o armazenamento e a recuperação de dados no MongoDB não são feitas no formato de tabelas, mas sim de “Documentos”.
O MongoDB permite escalabilidade e flexibilidade, além de ser uma ferramenta projetada para armazenar e trabalhar com grandes volumes de dados. Além disso, ele também é simples para os desenvolvedores aprenderem e utilizarem. Isso pois ele armazena dados em documentos do tipo JSON flexíveis. Ou seja, sabendo trabalhar com JSON, você consegue trabalhar com o MongoDB sem grandes dificuldades. Você pode conhecer mais sobre o MongoDB e suas características no site oficial.
O Compass é uma ferramenta de interface gráfica (GUI) fornecida pelo próprio MongoDB. O Compass permite consultar, otimizar e analisar os dados do MongoDB de forma interativa e visual. Portanto, é uma ótima ferramenta para trabalharmos junto ao MongoDB. Você pode conhecer mais sobre o Compass e realizar o download e instalação através do seu site.
Docker
O Docker é uma ferramenta que permite e facilita o desenvolvimento, implantação e execução de aplicações e serviços através de ambientes isolados. Dessa forma, permite gerenciar a infraestrutura de uma aplicação de maneira simples e fácil. Por causa disso, vem sendo cada vez mais utilizada por Desenvolvedores de todo o mundo.
Com o Docker, podemos desenvolver e executar aplicações em ambientes isolados e independentes do ambiente utilizado. Estes ambientes isolados no Docker são chamados de Containers. Portanto, podemos reproduzir esta mesma aplicação em qualquer ambiente de desenvolvimento ou produção. Ou seja, uma vez que uma aplicação esteja funcionando corretamente utilizando o ambiente Docker, então essa mesma aplicação funcionará em qualquer outro ambiente, seja outra máquina, servidor, etc. Isso é possível pois os containers do Docker são isolados a nível de disco, memória e processamento de rede.
Entender isso é muito importante para aprender como executar o MongoDB e o Compass utilizando o Docker!
Containers Docker e DockerHub
Segundo a descrição do próprio Docker sobre o que são containers:
“Um container é uma unidade padrão de software que empacota o código e todas as suas dependências para que o aplicativo seja executado de forma rápida e confiável de um ambiente de computação para outro.“
Um Container gera uma imagem em tempo de execução. Entretanto, uma imagem Docker, vai gerar um ou mais containers, conforme especificado, de forma a executar as aplicações contidas na imagem.
Você pode iniciar um containers através de imagens definidas manualmente por você ou utilizando imagens criadas por terceiros. Dessa forma, existe um acervo amplamente utilizado pela comunidade, contendo imagens Docker. Esse acervo de imagens Docker é o DockerHub.
No DockerHub, podemos encontrar diversas imagens prontas para utilizarmos! Por exemplo, nesse tutorial vamos utilizar a imagem oficial do MongoDB para criar o nosso container com o MongoDB.
Instalação do MongoDB com Compass usando Docker
Pré-requisitos
Antes de iniciarmos o tutorial, é necessário que você já possua o Docker instalado em sua máquina. Portanto, se você ainda não possuí, realize o download e instalação do Docker ou Docker Desktop através da Página “Get Started” do Docker.
Independente se você utilizar Linux, Mac ou Windows, os processos descritos aqui serão os mesmos.
O Docker Desktop é uma ferramenta visual que permite interagirmos com o Docker. Entretanto, vamos utilizar os comandos através do terminal do nosso sistema para interagir com Docker.
Também é importante que você tenha conhecimentos básicos sobre linha de comandos no terminal.
Será necessário também realizar o download e instalação do Compass, mas explicaremos isso no quarto passo desse tutorial.
Primeiro Passo: Criando uma Rede interna no Docker
Antes de instalarmos o MongoDB com o Docker e o Compass, vamos iniciar uma rede interna no Docker. A rede interna será responsável pela comunicação do Container com demais serviços da máquina. Ou seja, através de uma rede, vamos permitir que o container com o MongoDB tenha comunicação com outros serviços externos ao container, como o Compass.
Primeiramente, para criar uma rede no Docker, digite o comando abaixo no seu terminal:
docker network create NET1
Dessa forma, com os comandos acima, criamos uma rede interna no Docker com o nome de “NET1“. Mas, é importante saber que você pode utilizar o nome que desejar para a rede. Entretanto, mantenha o nome da rede todo em maiúsculo ou todo em minúsculo e sem espaços ou caracteres especiais.
Por fim, você pode estar listando as redes disponíveis no Docker utilizando o comando a seguir:
docker network list
Segundo passo: Criar um volume no Docker
Ao utilizarmos um Banco de Dados, é importante manter esses dados armazenados em um local. Caso contrário, esses dados se perderão. Ou seja, precisamos de uma forma de persistir nossos dados para poder utilizar um Banco de Dados.
Portanto, vamos utilizar um recurso do Docker chamado “volume“. O volume servirá para realizarmos a persistência dos dados do MongoDB no nosso Docker. Ou seja, com ele, você pode manter os dados salvos na sua máquina de forma separada, isolada e segura. Dessa forma, utilizaremos uma ferramenta do próprio docker para persistir os dados do MongoDB e também acessá-los com o Compass.
Portanto, você deve criar um volume utilizando o comando abaixo:
docker volume create VOL1
Assim como no caso das redes, o nome que demos ao nosso volume é “VOL1“. Entretanto, você pode nomear da forma que desejar, desde que não utilize espaçamentos e caracteres especiais. Também recomendamos que você mantenha o nome do volume todo em maiúsculo ou todo em minúsculo.
Por fim, para listar os volumes disponíveis no Docker, você pode utilizar o comando:
docker volume list
Terceiro Passo: Montar um Container no Docker com a imagem do MongoDB
Para instalar o MongoDB no Docker, vamos utilizar a imagem oficial do MongoDB, disponível no Dockerhub. Ou seja, utilizaremos a imagem “mongo” do DockerHub, em sua última versão estável (“latest”). Portanto, utilize o terminal e realize os seguintes comandos para criar o container do PostgreSQL no Docker:
docker run -d --network NET1 -h mongo --name mongo -e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=secret -p 27017:27017 -v VOL1:/data/db mongo:latest
Para inspecionarmos o nosso container, podemos utilizar o comando “docker inspect” seguido do nome do container que desejamos inspecionar. Dessa forma, seguindo esse passo a passo, podemos utilizar o comando abaixo:
docker inspect mongo
Conhecendo os comandos
O comando –network refere-se a rede que vamos conectar o nosso container. Neste caso, vamos utilizar a rede criada nos passos anteriores, ou seja, a “NET1”.
O comando -h refere-se ao hostname que vamos utilizar para este Container. No caso, vamos utilizar o nome “mongo” como hostname. Portanto, poderemos acessar o nosso container através de serviços externos à ele, chamando por seu hostname.
Já o comando –name refere-se ao nome do container. Você pode optar por criar com o nome que preferir. Entretanto, em nosso exemplo, utilizamos o nome “mongo “.
Em seguida, você deve definir os parâmetros da instalação do próprio MongoDB. Ou seja, os dados de acesso, login, senha, etc. Portanto, utilizaremos as tags -e, que definem variáveis de ambientes aplicadas na instalação do MongoDB. Portanto, vamos utilizar as seguintes variáveis:
- MONGO_INITDB_ROOT_USERNAME– Definimos o nome de usuário Root do MongoDB. Em nosso exemplo, vamos utilizar como usuário root “mongoadmin”. Entretanto, você deve definir um nome de usuário conforme sua preferência.
- MONGO_INITDB_ROOT_PASSWORD– Definimos a senha de acesso Root ao MongoDB. Em nosso exemplo utilizamos a senha “secret”. Porém, à nível de produção recomendamos que você utilize uma senha mais complexa e segura.
Em seguida, utilizamos a tag -p para definirmos as portas externas do nosso container. Por padrão, o mongo utiliza a porta 27017.
o comando -v refere-se ao volume. Portanto, você deve utilizar o volume criado no 2º passo, ou seja, o “VOL1”, e em seguida, define-se o diretório que vamos utilizar (“VOL1:/data/db“). Por padrão costumamos utilizar o diretório /data/db para o MongoDB.
Por fim, você deve definir qual imagem deseja utilizar. Portanto, vamos utilizar a imagem oficial do MongoDB disponível no DockerHub. Utilizaremos a sua última versão, por isso utilizamos a imagem “mongo:latest“.
Quarto Passo: Instalando o Compass e conectando ao container Docker do MongoDB
Após instalar o MongoDB no Docker, vamos agora instalar o Compass na sua maquina para podermos interagir com o mongo de forma visual, rápida e segura!
Por ser um produto oficial oferecido pelo próprio MongoDB, você pode realizar o download do Compass através da página do Compass no site do MongoDB.
Portanto, acesse a página do Compass, e clique no botão “Download Now” ou “Faça Download Agora Mesmo“.
Em seguida faça a instalação do Compass.
Ao abrir o Compass, observe que há um endereço URI para realizar a conexão com o nosso MongoDB.
Portanto, utilizaremos a seguinte URI:
mongodb://mongoadmin:secret@localhost:27017
Para você entender melhor a URI acima, e utiliza-la conforme suas configurações, é importante que conheça o que cada parte dessa URI faz.
“mongodb” é o nome do serviço especifico que estamos utilizando. No caso, refere-se ao MongoDB.
Em seguida, definimos o nome de usuário para acessar o banco de dados. Logo após, definimos a senha de acesso. Portanto, em nosso exemplo, definimos como “mongoadmin:secret” que são, respectivamente, nosso usuário e senha de acesso ao MongoDB.
Por fim, definimos o endereço em que se encontra o nosso servidor e serviço. Em nosso exemplo, estamos utilizando tudo o Compass, o MongoDB e o Docker em uma mesma máquina local. Portanto, utilizamos localhost seguido da porta de conexão do nosso serviço do MongoDB. Ou seja: “localhost:27017″. Entretanto, se você estiver utilizando o container Docker do MongoDB em um servidor externo a sua máquina, como em um servidor, você deve trocar o localhost pelo endereço IP desta máquina.
Para finalizar, basta clicar no botão “Connect” ou “Conectar“. Agora você está conectado ao seu banco de Dados do MongoDB!
Conclusão
Com esse tutorial, você pode perceber que utilizar o Docker traz diversas vantagens e agiliza no processo de desenvolvimento de aplicações! Seguindo cada passo demonstrado aqui, você pode ter o MongoDB instalado em um Container do Docker, e utilizar o Compass para interagir com este Banco de Dados. Vale ressaltar que, graças ao Docker, você garante que o MongoDB vai rodar da mesma forma em qualquer ambiente e servidor. Além disso, utilizando o recurso de “volume”, você consegue realizar persistência desses dados diretamente na máquina em que está sendo executado o Docker. Portanto, podemos executar o MongoDB com o Docker em um servidor profissional à nível de produção!
Existe muito do Docker para ser explorado. Para avançar nos seus conhecimentos sobre Docker, recomendamos que você acompanhe nossas publicações. Entretanto, também recomendamos a leitura do tutorial “Get Started” da documentação oficial do Docker, que contém diversos exemplos e explicações para quem está começando com o Docker.