Pare de instalar bancos de dados
Victor Geruso Gomes
Posted on March 16, 2024
Sim, pare de usar bancos de dados instalados na raiz do seu sistema, para melhor gerenciamento, use-os com o Docker. Neste artigo irei mostrar como executar e gerenciar máquinas virtuais de três conhecidos bancos de dados e usa-los de forma local.
O que é o Docker?
O Docker é um software que gera a implantação de aplicativos em maquinas virtuais (containers), permitindo o uso desse, em diferentes ambientes complexos. No Docker, conteinerizar um sistema, permite que o mesmo seja usado em diversos ambientes, poupando o usuário de resolver problemas de compatibilidade, dando a possibilidade do uso padronizado no Windows, no Mac OS e no Linux, pois o mesmo aplicativo é sempre executado da mesma forma.
Raiz vs Docker
Na raiz o usuário precisa instalar uma versão especifica do banco desejado de forma padrão, deixando o ambiente local engessado, podendo causar um problema grande caso o mesmo necessite de uma versão diferente do SGBD em algum outro projeto.
Já com o Docker o mesmo SGBD de versões diferentes podem rodar cada um em um container especifico, facilitando a troca da versão quando necessária. Acredite, isso facilita muito e evita a dor de cabeça de ter que desinstalar uma versão do banco para instalar uma outra.
A prática
Se você já tem um banco instalado na sua raiz não precisa desinstala-lo se não quiser, só na hora de gerar seu container, basta mudar a porta local no comando, o pré requisito para este artigo é simples, tenha o Docker instalado na sua máquina.
Antes de qualquer comando precisamos aprender um pouco sobre a composição de um comando básico para rodar um container.
Para transformar uma imagem num container precisamos apenas rodar:
docker run [nome da imagem]:[versao da imagem]
Entre o comando e o nome da imagem, existem flags importantes que são muito usadas para melhorar ainda mais a montagem da VM.
- --name [nome do container]: cria um nome personalizado para o container;
- -e [variavel de ambiente]=[valor]: seta uma variável de ambiente no sistema;
- -p [porta local]:[porta padrão do container]: cria uma ponte entre a porta padrão do container, com uma porta local livre;
- -d: essa flag indica que o container irá rodar em segundo plano;
MySQL
Vamos para o comando que roda o container para o MySQL, um dos bancos mais populares, Para isso, basta rodar o comando:
docker run --name mysql-latest -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql:latest
Com esse comando, é criado um container onde, startado, pode ser acessado pelo endereço, mysql://localhost:3306.
PostgreSQL
Vamos para o comando que roda o container para o PostgreSQL, banco de dados Open Source muito popular, para isso, basta rodar o comando:
docker run --name postgres-latest -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword -d postgres:latest
Com esse comando é criado um container onde, startado, pode ser acessado pelo endereço, postgres://localhost:5432.
MongoDB
Vamos agora para o MongoDB, que diferente dos últimos, é um banco de dados não relacional orientado a documentos, para isso, basta rodar o comando:
docker run --name mongo-latest -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=mysecretpassword -d mongo:latest
Com esse comando, é criado um container onde, startado, pode ser acessado pelo endereço, mongodb://localhost:27017.
Os containers startados, podem ser vistos em docker ps
.
Conclusão
Neste artigo vimos uma forma simples de usar os bancos mais usados hoje em dia com o Docker, virtualizando os mesmos, e facilitando o dia a dia na hora de desenvolver ou manter seus projetos, esta ferramenta de virtualização, não faz esse tipo de processo somente com bancos de dados, mas ele gera muitas possibilidades com todo e qualquer tipo de projeto, basta pesquisar na ferramenta Docker Hub, essa plataforma consiste em um banco de imagens para o Docker, com diversas ferramentas e apps essenciais para nossa área.
Posted on March 16, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.