oAlexandre :)

Mysql + PHPMySQLAdmin com Docker Composer

Neste tutorial, vamos aprender a configurar e utilizar um ambiente eficiente de desenvolvimento com MySQL (MariaDB) e PHPMyAdmin usando Docker Compose. Com essa abordagem, você pode executar aplicações sem precisar instalar diretamente os serviços na sua máquina local.

Mas primeiro: O que é Docker e Docker Compose?

Docker é uma plataforma que permite empacotar e executar aplicações em ambientes isolados chamados containers. Docker Compose é uma ferramenta que simplifica a definição e execução de aplicações Docker multi-container por meio de um único arquivo YAML.

Instalando Docker e Docker Compose no Ubuntu

Siga os passos abaixo para instalar o Docker e Docker Compose v2:

1. Atualizar e instalar dependências:

No seu terminal no Ubuntu ou Distros baseadas nele digite:

sudo apt update

Com isso seu gerenciador de pacotes vai atualizar as informações dos repositórios.

2. Instalar Docker Engine + Docker Compose V2

Agora basta instalar o docker compose v2, ele já vai baixar todas as dependências que você precisa para rodar seus composers.

sudo apt install docker-compose-v2

Feito isso, vai levar alguns segundos, ou minutos dependendo de sua conexão, para tudo ser instalado.

Clonando o projeto

Para facilitar seu projeto eu tenho um repositório prontinho e atualizado com este arquivo. Então para agilizar sua vida basta clonar este projeto com o git no seu terminal:

git clone https://github.com/oalexandre/mysql-phpmyadmin-docker.git

Agora é só acessar a pasta do projeto, mas antes de rodar o arquivo vamos entender um pouco sobre o docker-compose.yml.

Entendendo o arquivo Docker Compose

Veja o arquivo docker-compose.yml:

services:
  db:
    image: mysql:latest
    ports:
      - "3306:3306"
    volumes:
      - ./db_persist:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=app_development
  app:
    image: phpmyadmin/phpmyadmin:latest
    links:
      - db
    ports:
      - 8081:80
    environment:
      - PMA_ARBITRARY=1
      - UPLOAD_LIMIT=300M

Explicação das seções:

Sessão db:

  • Utiliza a imagem mysql:latest.
  • Expõe a porta MySQL 3306.
  • Usa um volume local (db_persist) para persistir os dados do banco de dados.
  • Variáveis de ambiente:
    • MYSQL_ROOT_PASSWORD: Senha do usuário root.
    • MYSQL_DATABASE: Nome do banco de dados padrão criado automaticamente.

Sessão app:

  • Usa a imagem phpmyadmin/phpmyadmin:latest.
  • Cria um link com o container db para comunicação direta.
  • Expõe a porta local 8081 (PHPMyAdmin).
  • Variáveis de ambiente:
    • PMA_ARBITRARY: Permite conectar-se a qualquer servidor MySQL.
    • UPLOAD_LIMIT: Tamanho máximo dos uploads para o PHPMyAdmin.

Rodando os containers

Agora que você já entende um pouco melhor sobre a estrutura do arquivo, vamos rodar o seu docker compose. Para isso basta então você rodar o seguinte comando:

sudo docker compose up -d --build

Com este comando o docker vai construir e colocar para rodar os seus containers. Se tudo correu bem, você pode usar o comando abaixo para ver que os contaiers estão rodando:

sudo docker ps

Caso queira parar os containers é igualmente fácil, basta estar na mesma pasta do arquivo docker-compose.yml e digitar o comando abaixo:

sudo docker compose down

Como Acessar o PHPMyAdmin?

Lembra que no docker-compose.yaml nós expomos duas portas? Uma era a 8081, que se você acessar localmente vai cair no phpmyadmin, e outra que era a 3306, que é a do próprio Mysql. Então para conseguir abrir o phpmyadmin basta no seu navegador acessar: htttp://localhost:8081

Use as credenciais abaixo, conforme parametrisadas no docker-compose.yml:

  • Servidor: db (é o endereço do banco dentro da rede do docker)
  • Usuário: root
  • Senha: password

Conectando ao banco de dados MySQL

Na sua aplicação onde quer usar o banco de daos pode utilizar as seguintes credenciais:

  • Host: localhost
  • Porta: 3306
  • Usuário: root
  • Senha: password

Persistência dos dados

Da forma como constrimos docker-compose.yml dados do MySQL são persistidos localmente na pasta db_persist, garantindo que permaneçam mesmo após reiniciar ou parar os containers. Essa prática permite que você tenha os dados do mysql acessíveis fora do container.

Código-fonte completo

O projeto completo está disponível no repositório GitHub.

Agora você está pronto para usar o Docker Composer nas suas aplicações Mysql e gerenciá-las com o PhpMyAdmin.
Espero que tenha ajudado 🙂

Share the Post:

Posts Relacionados