MySQL + Adminer + Docker Compose: montando rapidamente um ambiente para uso

Renato Groffe
4 min readApr 21, 2019

--

Em um artigo anterior abordei a montagem de um ambiente de Desenvolvimento/Testes baseado em containers Docker com o PostgreSQL e o pgAdmin 4, utilizando para isto o Docker Compose:

PostgreSQL + pgAdmin 4 + Docker Compose: montando rapidamente um ambiente para uso

E aproveito este espaço para deixar aqui também um convite.

Dia 25/04/2019 (quinta-feira) às 21:30 — horário de Brasília — teremos mais um evento online gratuito no Canal .NET. Desta vez o MVP Luiz Carlos Faria fará uma apresentação sobre o uso de containers Docker como meio para simplificar a montagem de ambientes de Desenvolvimento.

Para efetuar a sua inscrição acesse a página do evento no Meetup. A transmissão acontecerá via YouTube, em um link a ser divulgado em breve.

Nesse novo post retomo essa abordagem, utilizando desta vez a versão 5.7 do MySQL e o Adminer. Para aqueles ainda não familiarizados com tal ferramenta, o Adminer é uma solução acessível via browser para a administração do MySQL e distribuída gratuitamente sob a forma de um arquivo PHP/imagem Docker.

Neste exemplo serão utilizadas as imagens mysql e adminer:

Na listagem a seguir está o conteúdo do arquivo docker-compose.yml que permitirá a criação do ambiente citado (MySQL + Adminer). Os testes descritos neste artigo foram realizados no Ubuntu Desktop 18.04:

  • O serviço mysqlsrv se refere à instância do MySQL 5.7 a ser criada para acesso na porta 3306;
  • Já o serviço adminer corresponde ao container que permitirá a execução do Adminer (imagem adminer) na porta 8080;
  • Nas seções environment dos serviços mysqlsrv e adminer foram definidas configurações (variáveis de ambientes) necessárias para a geração dos 2 containers;
  • As imagens referenciadas serão baixadas caso ainda não existam no ambiente a partir do qual o Docker Compose foi executado;
  • Foi especificado ainda um volume para mysqlsrv, indicando com isto o diretório no Ubuntu Desktop em que serão gravados os arquivos de dados (/home/renatogroffe/Desenvolvimento/Docker/Volumes/MySql);
  • Por meio da network mysql-compose-network acontecerá a comunicação entre os containers mysqlsrv e adminer.

O comando docker-compose up -d efetuará a criação da network e dos containers esperados (baixando inclusive imagens necessárias ao não encontrar as mesmas, o que não foi o caso para esse teste):

Com a instrução docker network ls podemos confirmar que a rede mysql-compose-network foi criada com sucesso (como ambientemysql_mysql-compose-network, resultado da concatenação com o nome do diretório em que se encontra o arquivo docker-compose.yml):

Já o comando docker-compose ps exibirá que os containers do MySQL (porta 3306) e do Adminer (porta 8080) foram gerados corretamente e se encontram em execução:

E finalmente a próxima imagem traz os arquivos e diretórios criados para o volume definido no arquivo docker-compose.yml:

Testando o ambiente

Um teste de acesso via browser ao Adminer (http://localhost:8080) exibirá a tela inicial desta solução:

Em Server informar o nome do container do MySQL (mysqlsrv), já que o fato dos 2 serviços/containers estarem em uma mesma rede do Docker permite que o Adminer referencie o servidor utilizando esta identificação. Preencher ainda a senha (Password) com o valor indicado em MYSQL_ROOT_PASSWORD no arquivo docker-compose.yml:

Concluído o processo de login aparecerá então o banco de dados testedb (também especificado em docker-compose.yml, através da variável de ambiente MYSQL_DATABASE) como uma das opções disponíveis:

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

Responses (1)