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

Tutorial: Exportando Imagens Base64 Usando Laravel Excel

Tutorial: Exportando Imagens Base64 Usando Laravel Excel

Neste tutorial, vamos aprender como exportar uma lista de cadastros de clientes para uma planilha Excel, incluindo as fotos dos... Leia mais

Como Usar a Porta 443 para Conexões SSH com o Bitbucket e Contornar Restrições de Rede

Como Usar a Porta 443 para Conexões SSH com o Bitbucket e Contornar Restrições de Rede

Se você já se deparou com a frustrante mensagem de erro “ssh: connect to host bitbucket.org port 22: Network is... Leia mais

Por que whereNull não funciona com updateOrCreate no Laravel (e como evitar bugs silenciosos)

Por que whereNull não funciona com updateOrCreate no Laravel (e como evitar bugs silenciosos)

O updateOrCreate() é um dos métodos mais utilizados no Eloquent para garantir que registros sejam atualizados ou criados sem duplicações.... Leia mais

Como instalar o Go Language no Ubuntu ?

Como instalar o Go Language no Ubuntu ?

Então resolvi tirar um tempo para conhecer outras linguagens de programação e no momento resolvi iniciar com a GO pois... Leia mais