image

Access unlimited bootcamps and 650+ courses

33
%OFF
Article image

RF

Rodolfo Freire30/12/2025 17:30
Share

Utilização do Docker Compose para Implementar um Servidor MariaDB

  • #Docker
  • #MySQL

Introdução

A utilização de contêineres revolucionou o desenvolvimento de software, permitindo que as aplicações sejam construídas, distribuídas e executadas de forma mais eficiente e consistente. Entre as ferramentas que facilitam esse processo, Docker e Docker Compose se destacam. Este artigo explora a configuração do MariaDB usando Docker Compose, detalha suas vantagens e diferenças em relação ao MySQL, e apresenta uma análise aprofundada do arquivo de configuração my.cnf e das especificações do docker-compose.yml.

Docker e Docker Compose

O que é Docker?

Docker é uma plataforma que automatiza a construção, distribuição e execução de aplicações dentro de contêineres. Cada contêiner encapsula uma aplicação e todas as suas dependências, garantindo que ela seja executada da mesma maneira em qualquer ambiente. Isso resolve problemas comuns relacionados à compatibilidade e configuração.

Vantagens do Docker

  1. Isolamento: Contêineres são isolados uns dos outros, minimizando conflitos de dependências.
  2. Portabilidade: As aplicações podem ser movidas entre ambientes sem problemas, garantindo que funcionem de maneira consistente.
  3. Escalabilidade: É fácil replicar contêineres, facilitando a escala horizontal das aplicações.
  4. Eficiência: Os contêineres compartilham o kernel do sistema operacional, sendo mais leves do que máquinas virtuais.

O que é Docker Compose?

Docker Compose é uma ferramenta que permite definir e executar aplicações que utilizam múltiplos contêineres. A configuração é feita através de um arquivo YAML (docker-compose.yml), onde todos os serviços, redes e volumes da aplicação são especificados. Isso simplifica a orquestração e a gestão de aplicações complexas.

Vantagens do Docker Compose

  1. Simplicidade: A configuração de serviços complexos é centralizada em um único arquivo, tornando a gestão mais intuitiva.
  2. Facilidade de uso: Com comandos simples como docker-compose up, todos os serviços podem ser iniciados simultaneamente.
  3. Configuração em Camadas: O Compose permite uma clara separação entre definições de serviços, redes e volumes, melhorando a legibilidade.

Comparação entre MySQL e MariaDB

O que é MySQL?

MySQL é um dos sistemas de gerenciamento de banco de dados relacional (RDBMS) mais populares do mundo. É amplamente utilizado em aplicações web devido à sua robustez, escalabilidade e confiabilidade.

O que é MariaDB?

MariaDB é um fork do MySQL, criado após a aquisição do MySQL pela Oracle. Ele foi projetado para ser totalmente compatível com MySQL, mas com melhorias de desempenho e novos recursos. A comunidade do MariaDB é ativa, resultando em atualizações frequentes e inovações.

Diferenças Chave

  1. Licenciamento: MySQL é propriedade da Oracle, enquanto MariaDB é totalmente open-source.
  2. Desempenho: MariaDB oferece melhor desempenho em operações complexas e alta concorrência.
  3. Recursos: MariaDB introduz novos tipos de armazenamento e funcionalidades que não estão presentes nas versões mais antigas do MySQL.

Configuração do MariaDB no my.cnf

O arquivo de configuração my.cnf é essencial para ajustar o comportamento do MariaDB. Vamos analisar suas seções e configurações comuns em detalhe.

Estrutura do my.cnf

[mysqld]
# Configurações Gerais
user            = mysql
port            = 3306
bind-address    = 0.0.0.0

# Ajustes de Performance
innodb_buffer_pool_size = 512M
max_connections = 150
query_cache_size = 64M
thread_cache_size = 8
tmp_table_size = 64M
max_heap_table_size = 64M

# Logs
log_error = /var/log/mysql/error.log
general_log = 1
general_log_file = /var/log/mysql/mysql.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

# Replicação
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10 

Descrição das Seções e Configurações

  1. Configurações Gerais:
  2. Ajustes de Performance:
  3. Logs:
  4. Replicação:

Configuração do Docker Compose para MariaDB

A configuração do MariaDB usando Docker Compose é feita no arquivo docker-compose.yml. Vamos analisar a configuração específica e suas implicações:

version: '3.8'

services:
mariadb:
  container_name: mariadb
  image: mariadb:10.5
  environment:
    MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD:-BR#12345}"
    MYSQL_DATABASE: "${MYSQL_DATABASE:-mariadb}"
    MYSQL_USER: "${MYSQL_USER:-rodolfo}"
    MYSQL_PASSWORD: "${MYSQL_PASSWORD:-BR#12345}"
  ports:
    - "3306:3306"
  volumes:
    - .docker/mariadb/data:/var/lib/mysql
    - .docker/mariadb/config/my.cnf:/etc/mysql/custom.cnf
    - .docker/mariadb/logs:/var/log/mysql
    - .docker/mariadb/backups:/backups
    - .docker/mariadb/dumps:/dumps
  networks:
    - skynet
  healthcheck:
    test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "${MYSQL_USER:-rodolfo}", "-p${MYSQL_PASSWORD:-BR#12345}" ]
    interval: 30s
    timeout: 10s
    retries: 5
    start_period: 30s

networks:
skynet:
  driver: bridge 

Descrição das Configurações do Docker Compose

  1. Imagem e Versão:
  2. Variáveis de Ambiente:
  3. Portas:
  4. Volumes:

var/log/mysql**: Armazena os logs do MariaDB, facilitando o monitoramento.

  • /backups e /dumps: Diretórios dedicados para armazenar backups e dumps do banco de dados.
  1. Redes:
  2. Healthcheck:

Melhores Práticas

  1. Segurança: Utilize sempre senhas complexas e armazene-as de forma segura. Evite expor informações sensíveis em arquivos de configuração.
  2. Backup Regular: Implemente rotinas de backup automatizadas para prevenir perda de dados. Ferramentas como mysqldump ou soluções de replicação devem ser consideradas.
  3. Atualizações: Mantenha o MariaDB e suas dependências atualizados para garantir segurança e estabilidade.
  4. Monitoramento: Use ferramentas de monitoramento para rastrear a performance do banco de dados e detectar problemas antes que se tornem críticos.
  5. Documentação: Mantenha uma documentação clara sobre configurações e procedimentos, facilitando a manutenção e a transferência de conhecimento entre equipes.

Conclusão

A integração de Docker Compose com MariaDB proporciona uma solução eficaz e flexível para o gerenciamento de bancos de dados em ambientes de desenvolvimento e produção. A personalização do MariaDB através do arquivo my.cnf permite ajustes finos que podem otimizar a performance e a segurança do banco de dados. Com a adoção de melhores práticas, é possível criar um ambiente de banco de dados resiliente, eficiente e seguro, adequado para atender às crescentes demandas do desenvolvimento moderno de software.

Referências

Share
Recommended for you
Microsoft Certification Challenge #5 - AI 102
Bradesco - GenAI & Dados
GitHub Copilot - Código na Prática
Comments (0)