DEV Community

Cover image for Como criar um banco de dados mariaDb com docker
TeixeiraJr
TeixeiraJr

Posted on • Edited on

5 3

Como criar um banco de dados mariaDb com docker

Em quais situações utiliza-se Docker para banco de dados ?

Neste post, iremos demonstrar passo a passo como criar um banco de dados mariaDb utilizando docker.
Na grande maioria dos casos, não é recomendado a conteinerização de bancos de dados, por diversos motivos, como:

  • Não é necessário um escalonamento automático da grande maioria dos bancos de dados,

  • Apesar das recentes evoluções do Docker, o mesmo ainda não lida bem com as cargas de trabalho oriundas das consultas e inserções dos bancos de dados,

  • Caso não seja configurado um volume em host (isto é, fora do container) e o mesmo for excluído, os dados armazenados no mesmo serão destruídos,

  • Existem serviços específicos que lidam de uma forma muito melhor com banco de dados, como o RDS da AWS, diminuindo a complexidade do gerenciamento dos bancos que muitos devs sentem dificuldade.

Então, por qual motivo a criação de bancos de dados em docker seria interessante? Simples, a prática é muito boa para ambientes de desenvolvimento. Criando um container em docker, é removida a complexidade de gerenciamento da mesma facilitando muito o processo de desenvolvimento local.

Como criar um banco de dados em container

Inicialmente, é necessário que tenhamos o docker e o docker compose instalados, caso não tenha, siga o passo a passo da documentação de acordo com o seu sistema operacional.

Com o Docker instalado, iremos criar um arquivo chamado docker-compose.yml para parametrizarmos a criação do Docker do banco facilitando a criação da imagem e do container. Segue um exemplo do arquivo yml utilizando uma imagem mariaDb:

version: '3.4'

services:
  mariadb:
    image: mariadb:10.2
    environment:
      MYSQL_ROOT_PASSWORD: 'mypassword'
      MYSQL_DATABASE: 'mydatabasename'
      MYSQL_USER: 'mydatabaseuser'
      MYSQL_PASSWORD: 'mydatabasepassword'
    ports:
      - 3306:3306

Enter fullscreen mode Exit fullscreen mode

Com isto, temos um arquivo yml que irá criar uma instância Mariadb, utilizando a imagem 10.2, com as credenciais configuradas no enviroment acessado pela porta 3306.

Após a criação do arquivo, acesse através do terminal o diretório do mesmo e rode o comando:

docker-compose up
Enter fullscreen mode Exit fullscreen mode

Na primeira criação de imagem do Docker, o mesmo fará o download da imagem utilizada.

Utilizando outro terminal (o container ficará rodando neste terminal), utilize o seguinte comando para verificar se o container está ativo:

docker ps
Enter fullscreen mode Exit fullscreen mode

O retorno esperado é algo similar a isso, que traz diversas informaçoes a respeito do seu container:

Container Database

Acessando a sua base de dados

Agora que o container está ativo, utilizaremos alguma ferramenta de banco de dados para acessá-lo. Recomendo pessoalmente a utilização do Dbeaver mas fique a vontade para utilizar qualquer outro.

Entrando no Dbeaver, vamos em nova conexão (canto esquerdo superior), e selecionamos MariaDb

Select database

Nas credenciais, preenchemos o host como 'localhost' e port como '3306'. Em Database, Username e Password, preenchemos conforme o arquivo docker-compose.yml de configuração da base:

Database Credentials

Ao clicar em Test connection, espera-se:

Connection sucessfull

Por fim, agora clicamos em Finish e nosso banco de dados está configurado e conectado em uma ferramenta para visualização e manipulação de dados. Caso deseje conectar em alguma aplicação, utilize as credencias do arquivo compose.

Top comments (0)

Cloudinary image

Optimize, customize, deliver, manage and analyze your images.

Remove background in all your web images at the same time, use outpainting to expand images with matching content, remove objects via open-set object detection and fill, recolor, crop, resize... Discover these and hundreds more ways to manage your web images and videos on a scale.

Learn more

👋 Kindness is contagious

If this article connected with you, consider tapping ❤️ or leaving a brief comment to share your thoughts!

Okay