PauloRB.dev

Desenvolvedor de Software

Como Configurar e Gerenciar um Banco de Dados MySQL com Docker Compose | PauloRB.dev Como Configurar e Gerenciar um Banco de Dados MySQL com Docker Compose – PauloRB.dev
Como Configurar e Gerenciar um Banco de Dados MySQL com Docker Compose

Como Configurar e Gerenciar um Banco de Dados MySQL com Docker Compose

Configurar e gerenciar bancos de dados pode ser uma tarefa desafiadora, especialmente quando você precisa garantir a portabilidade e a consistência do ambiente de desenvolvimento. Neste artigo, vamos explorar como configurar uma instância MySQL usando Docker Compose, uma ferramenta poderosa que facilita a definição e o compartilhamento de ambientes de contêiner.

Configurando o MySQL com Docker Compose

Vamos começar com um exemplo básico de um arquivo docker-compose.yml que configura uma instância MySQL.

version: '3.3'
services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: 'db'
      MYSQL_USER: 'user'
      MYSQL_PASSWORD: 'password'
      MYSQL_ROOT_PASSWORD: 'password'
    ports:
      - '3306:3306'
    expose:
      - '3306'
    volumes:
      - my-db:/var/lib/mysql
volumes:
  my-db:

Neste exemplo, definimos um serviço chamado db que utiliza a imagem do MySQL versão 5.7. Vamos analisar cada parte desse arquivo:

  1. version: '3.3': Esta linha define a versão do Docker Compose que estamos usando. A versão 3.3 é uma das mais comuns, oferecendo um bom equilíbrio entre recursos e compatibilidade.
  2. Serviço db:
    • image: mysql:5.7: Aqui, especificamos a imagem do MySQL que será usada. Você pode trocar a versão conforme necessário.
    • restart: always: Garante que o contêiner será reiniciado automaticamente caso falhe ou o Docker seja reiniciado.
    • environment: Define as variáveis de ambiente usadas pelo MySQL, como o banco de dados padrão, usuário e senha.
    • ports: Mapeia a porta 3306 do contêiner para a mesma porta na máquina host, permitindo que você acesse o banco de dados localmente.
    • expose: Expõe a porta 3306, permitindo que outros contêineres acessem o banco de dados.
    • volumes: Monta um volume que persiste os dados do MySQL, garantindo que seus dados não sejam perdidos quando o contêiner for removido.
  3. Volumes:
    • my-db: Este é o nome do volume onde os dados do MySQL serão armazenados. Isso assegura que os dados sejam persistentes mesmo que o contêiner seja removido.

Gerenciamento de Contêineres e Imagens

Uma vez configurado o Docker Compose, você pode gerenciar seus contêineres com comandos simples. Por exemplo:

  • Subir o ambiente: docker-compose up -d
  • Parar o ambiente: docker-compose down

Caso você precise liberar espaço em disco ou remover contêineres e imagens antigas, os seguintes comandos são úteis:

  • Remover contêineres parados: docker container prune
  • Remover imagens não utilizadas: docker image prune
  • Remover volumes não utilizados: docker volume prune

Essas práticas ajudam a manter seu ambiente Docker limpo e eficiente.

Mais Posts

Primeiros Passos com Go: Criando uma Aplicação Interativa do Zero

Primeiros Passos com Go: Criando uma Aplicação Interativa do Zero

Se você está começando a aprender Go e quer fazer algo prático, vou te mostrar como criar uma aplicação básica... Leia mais

Como Atualizar Valores de Chaves em Campos JSON no PostgreSQL

Como Atualizar Valores de Chaves em Campos JSON no PostgreSQL

Atualizar valores em um campo JSON no PostgreSQL é uma operação comum ao trabalhar com dados semi-estruturados. Isso é especialmente... Leia mais

Entendendo o Conceito de Estado no React

Entendendo o Conceito de Estado no React

Em React, o estado refere-se a uma estrutura de dados que determina o comportamento do componente e como ele será... Leia mais

Como Redimensionar Imagens Base64 com JavaScript e TypeScript

Como Redimensionar Imagens Base64 com JavaScript e TypeScript

Ao trabalhar com imagens base64 no front-end, é comum precisar redimensioná-las para melhorar o desempenho da aplicação, especialmente ao enviá-las... Leia mais