Os con­ten­to­res Docker do MongoDB são fáceis de replicar e escalar. À medida que a carga na base de dados aumenta, pode iniciar mais con­ten­to­res MongoDB para manter o de­sem­pe­nho da base de dados estável.

É possível executar o MongoDB num contentor Docker?

O MongoDB pode ser executado per­fei­ta­mente num contentor Docker. No Docker Hub, existem dois tipos de imagens do MongoDB: as imagens da co­mu­ni­dade (Community Edition) e as imagens oficiais (En­ter­prise Edition). Deverá escolher entre uma ou outra consoante as suas ne­ces­si­da­des. As da Community Edition são nor­mal­mente uti­li­za­das em projetos não co­mer­ci­ais ou im­ple­men­ta­ções de menor dimensão. Por outro lado, as da En­ter­prise Edition oferecem fun­ci­o­na­li­da­des adi­ci­o­nais e suporte que se revelam úteis em apli­ca­ções de maior escala ou em ambientes em­pre­sa­ri­ais que requerem fun­ci­o­na­li­da­des avançadas, como en­crip­ta­ção, auditoria e in­te­gra­ção LDAP.

Se as imagens pré-con­fi­gu­ra­das do MongoDB no Docker Hub não se adequarem to­tal­mente às suas ne­ces­si­da­des, o Docker permite-lhe criar uma imagem per­so­na­li­zada uti­li­zando um Doc­ker­file. Nele, pode se­le­ci­o­nar a versão do MongoDB, definir opções de con­fi­gu­ra­ção es­pe­cí­fi­cas (como métodos de au­ten­ti­ca­ção) e instalar fer­ra­men­tas ou con­tro­la­do­res adi­ci­o­nais que sejam im­por­tan­tes para o seu ambiente.

Iniciar o MongoDB como um contentor Docker: ins­tru­ções passo a passo

O Docker destaca-se pela sua vir­tu­a­li­za­ção leve, que facilita a por­ta­bi­li­dade e a con­sis­tên­cia em di­fe­ren­tes ambientes de de­sen­vol­vi­mento e produção. A seguir, ex­pli­ca­mos passo a passo como con­fi­gu­rar con­ten­to­res MongoDB no Docker. Se é prin­ci­pi­ante, re­co­men­da­mos o nosso tutorial sobre o Docker: ins­ta­la­ção e primeiros passos, no qual ofe­re­ce­mos uma in­tro­du­ção a esta pla­ta­forma de con­ten­to­res.

Passo 1: des­car­re­gar a imagem do MongoDB no Docker

Para criar um contêiner do MongoDB no Docker, primeiro é ne­ces­sá­rio des­car­re­gar a imagem cor­res­pon­dente do Docker Hub. Abra o seu terminal ou linha de comandos e execute este comando:

docker pull mongo:latest
bash

Se a imagem já estiver dis­po­ní­vel lo­cal­mente, o Docker não irá des­car­re­gar uma nova versão, a menos que es­pe­ci­fi­que ex­pli­ci­ta­mente a versão que pretende utilizar (por exemplo, mongo:4.4).

Passo 2: iniciar o contentor Docker no MongoDB

Depois de des­car­re­gar a imagem do Docker para o MongoDB, pode iniciar um contentor com base nessa imagem. Para tal, utilize o seguinte código:

docker run --name mongodb-container -d -p 27017:27017 mongo:latest
bash
  • docker run serve para iniciar um contêiner Docker.
  • --name mongodb-container atribui ao contentor o nome «mongodb-container».
  • -d executa o contentor em segundo plano (modo «detached»). Ou seja, enquanto o contentor estiver a ser executado, poderá continuar a utilizar o seu terminal.
  • -p 27017:27017 mapeia a porta padrão do MongoDB 27017 do contentor para o seu sistema anfitrião.
  • mongo:latest dá a instrução para utilizar a imagem mais recente.

Passo 3: verificar se o contentor está a ser executado

Para se cer­ti­fi­car de que o contentor foi iniciado cor­re­ta­mente, digite o seguinte comando:

docker ps
bash

As in­for­ma­ções obtidas oferecem uma visão geral dos con­ten­to­res Docker do MongoDB que estão ativos no seu sistema, há quanto tempo estão em execução e quais as portas que estão a utilizar. Se precisar de mais detalhes, como in­for­ma­ções sobre con­ten­to­res parados ou opções de filtragem es­pe­cí­fi­cas, pode utilizar o comando docker ps -a.

Passo 4: ligar-se ao MongoDB no contentor Docker

Agora pode ligar-se à instância do MongoDB no seu contentor Docker. Para tal, abra o MongoDB Shell di­re­ta­mente no contentor:

docker exec -it mongodb-container mongo
bash
  • docker exec executa um comando no contentor que já está em execução.
  • -it permite a interação com o terminal no contentor.
  • mongodb-container é o nome do contentor do MongoDB que foi instalado.
  • mongo é res­pon­sá­vel por iniciar o MongoDB Shell.

Depois de executar este comando, deverá ver o MongoDB Shell pronto para receber comandos. Se for esse o caso, é hora de in­tro­du­zir os comandos habituais do MongoDB para gerir ou consultar a sua base de dados.

Passo 5: realizar operações no MongoDB Shell

Agora pode vi­su­a­li­zar todas as bases de dados exis­ten­tes no servidor MongoDB da seguinte forma:

show databases
bash

O resultado contém os nomes das bases de dados:

admin   0.000GB
local      0.000GB
test       0.000GB
bash

Para trabalhar com uma base de dados es­pe­cí­fica no MongoDB Shell, utilize o seguinte comando:

use mydatabase
bash

Este comando permite-lhe mudar para a base de dados chamada «my­da­ta­base». Se a base de dados não existir, será criada au­to­ma­ti­ca­mente quando in­tro­du­zir um documento nela.

Também podes consultar do­cu­men­tos de uma coleção es­pe­cí­fica:

db.users.find()
bash

O MongoDB Shell devolve todos os do­cu­men­tos ar­ma­ze­na­dos na coleção «users».

{ "_id": ObjectId("609823e9f9a5f7f364fc3f90"), "username": "alicia", "age": 28 }
{ "_id": ObjectId("609823f2f9a5f7f364fc3f91"), "username": "leo", "age": 32 }
{ "_id": ObjectId("609823f9f9a5f7f364fc3f92"), "username": "carlos", "age": 25 }
bson

Cada documento contém um campo único _id e outros campos, como username e age (nome de uti­li­za­dor e idade).

No nosso Guia Digital, pode encontrar mais in­for­ma­ções sobre as fer­ra­men­tas Docker, bem como uma apre­sen­ta­ção do MongoDB e uma com­pa­ra­ção com o SQL.

Ir para o menu principal