AndersonArruda

Artigos de tecnologia ao alcance de um clique!


MongoDB com Docker em uma VM da GCP
MongoDB Docker GoogleCloud GCP DevOps CloudComputing EngenhariaDeSoftware Backend BancoDeDados VirtualMachine Containerização AndersonArruda

MongoDB com Docker em uma VM da GCP

01/11/2025 17:46

Olá novamente, sou eu, Anderson!


Para quem já acompanha meus posts, vocês sabem o que significa GCP, Google Cloud Platform.


Mas espera um segundo… o que exatamente é uma VM?


Uma VM (Máquina Virtual) é um computador baseado em software que roda dentro de outro computador físico.

Ela se comporta como uma máquina independente, com seu próprio sistema operacional, CPU, memória e armazenamento, mas na verdade compartilha os recursos físicos do sistema hospedeiro.

Essa configuração do MongoDB é voltada para aprendizado e ambientes de teste, como um ambiente de staging.


Ajuda a reduzir custos, mas para uso em produção você precisará de configurações adicionais e também deve considerar o uso de um proxy.

Um proxy entre seu backend e o banco de dados atua como uma camada intermediária que gerencia e otimiza como seu aplicativo se comunica com o banco (SQL ou MongoDB, etc.).

Nem sempre é necessário, mas é muito útil em sistemas mais complexos.


Um proxy de banco de dados fica entre seu backend (API, servidor de aplicação) e o banco real.

Quando seu app faz consultas, elas passam primeiro pelo proxy, que encaminha, filtra ou otimiza as requisições antes de enviá-las ao banco de dados real.


Exemplos:

  • PgBouncer ou ProxySQL para PostgreSQL/MySQL
  • MongoDB Mongos (embutido em clusters fragmentados)
  • Cloud SQL Proxy, AWS RDS Proxy e outros


Querem que eu fale mais sobre proxies de banco de dados?

Se sim, me avisem que escrevo um artigo só sobre isso!


Vamos Começar


Vamos criar uma VM.

Como este é apenas um caso de estudo, usaremos uma máquina simples e de baixo custo.


  1. Acesse o Google Cloud Console.
  2. Abra o menu e selecione Compute Engine → Instâncias de VM.
  3. Clique no botão azul Nova Instância ou Criar Instância.
  4. Escolha um tipo de máquina E2, que é acessível e perfeita para testes.
  5. Eu costumo escolher a região us-central, que geralmente é mais barata que a América do Sul.
  6. Dê um nome amigável à sua VM.
  7. Selecione e2-medium — o custo estimado é cerca de US$25,46/mês, podendo subir um pouco depois que adicionarmos outro disco (você já vai entender por quê).
  8. No menu lateral, clique em SO e armazenamento.
  9. Escolha Debian GNU/Linux 13 ou Ubuntu (os passos são parecidos).
  10. Adicione um novo disco: dê um nome fácil de lembrar, escolha SSD permanente, defina 20 GB e salve.
  11. O custo estimado agora será de cerca de US$28,86/mês na data deste artigo.


Como é apenas para estudo, vamos pular proteção de dados (snapshots, etc.).


Mas em produção, backups são essenciais, leve isso a sério!


Adicionando uma Chave SSH à Sua VM da GCP

Crie sua chave SSH com o PuTTYgen ou execute:

ssh-keygen -t ed25519 -C "<USER_NAME>"

Depois, exiba a chave pública (em sistemas Unix, ela estará em ~/.ssh):

cat ~/.ssh/id_ed25519.pub


Copie essa chave e adicione à sua VM na GCP:

  1. No console da GCP, vá em Compute Engine → Instâncias de VM.
  2. Selecione sua VM do MongoDB.
  3. Clique em Editar.
  4. Encontre Chaves SSH, adicione a chave pública criada e salve.


Lembre-se: é o arquivo .pub que você deve adicionar!

Agora conecte-se:

ssh <USERNAME>@<GCP_VM_IP>

Se tudo estiver certo, você estará conectado à sua nova VM!


Se sua chave tiver um nome personalizado, use:

ssh -i ~/.ssh/<KEY_NAME> <USERNAME>@<GCP_VM_IP>


Reservando um IP Estático


Vamos garantir que sua VM mantenha o mesmo endereço IP:

  1. Na GCP, procure por Endereços IP.
  2. Localize seu IP externo.
  3. Clique nos três pontinhos à direita e selecione Promover para IP estático.
  4. Dê um nome e salve.


Atualizando e Instalando o Docker


Atualize os pacotes do sistema:

sudo -s
apt update
apt upgrade

Depois instale o Docker:

sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo systemctl status docker

Confirme se tudo está funcionando:

docker --version

Você deve ver algo como:

Docker version 28.5.1, build e180ab8

Se quiser permitir que outro usuário execute Docker:

sudo usermod -aG docker $USER


Formatando o Segundo Disco com XFS


Agora vem a parte divertida!

Vamos formatar o segundo disco com o sistema de arquivos XFS (ideal para o MongoDB).

É por isso que adicionamos aquele disco extra antes!

Instale as ferramentas XFS:

sudo apt install xfsprogs -y

Verifique os discos:

lsblk

Provavelmente você verá /dev/sdb como o segundo disco (20 GB).

Formate-o:

sudo mkfs.xfs -f -n ftype=1 /dev/sdb

Confirme o resultado:

sudo xfs_info /dev/sdb | grep ftype

Deve retornar algo como:

naming =version 2 bsize=4096 ascii-ci=0 ftype=1 parent=0

Crie a pasta de dados do MongoDB:

sudo mkdir -p /data/mongodb

Monte o disco e defina as permissões:

sudo mount /dev/sdb /data/mongodb
sudo chown -R 999:999 /data/mongodb

Verifique:

df -Th /data/mongodb

Você verá algo como:

Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sdb       xfs    20G  424M   20G   3% /data/mongodb


Executando o MongoDB com Docker


Agora estamos prontos para rodar o MongoDB!

docker run -d \
  --name mongodb \
  -v /data/mongodb:/data/db \
  -p 27017:27017 \
  --ulimit nofile=64000:64000 \
  mongo:7.0

Verifique se está rodando:

docker ps

Se o contêiner estiver listado e não reiniciando...

Parabéns, seu MongoDB está em execução!


Testando o MongoDB


Vamos dar uma olhada rápida:

docker exec -it mongodb bash
mongosh

Depois teste:

show dbs
use <DB_NAME>
show collections

Boom! Seu servidor MongoDB está rodando perfeitamente!


Palavras Finais


YEAHHHH!!! 🎉

Você conseguiu! Seu MongoDB na VM da GCP com Docker está no ar.

Espero que tenha gostado deste tutorial.

Curta, compartilhe com seus amigos e lembre-se:

o conhecimento se torna poderoso quando é compartilhado.

Nos vemos no próximo.

Anderson Arruda, encerrando… até mais!

Espaço para publicidade
0 Comentário(s)
Seja o primeiro a comentar o nosso artigo!
Todos os direitos reservados. © 2021-2031
SBBlog Powered By Powered By Sysborg | Powered By Anderson Arruda