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 🙂