Olá, seja bem vindo(a).
Resolvi criar este artigo depois de muito pesquisar na internet e não encontrar nenhum tutorial com essas informações de forma simples e direta.
Antes de entrar no mundo docker eu utilizava um único serviço MySQL no meu PC e todos os meus sistemas consumiam esse servidor de banco de dados, e a maioria das instruções que encontramos sobre banco de dados e docker configuram o banco de dados junto com a aplicação.
Segue agora um passo a passo para você levantar um container com MySQL que poderá ser utilizado por qualquer aplicativo/sistema que você queira desenvolver na mesma máquina/rede.
Muito bem, vou começar pressupondo que você já tem o docker instalado e funcionando em sua máquina, caso isso não seja verdadeiro vou deixar um link para você fazer essa instalação, e quando finalizar retorne nesse artigo para finalizar seu ambiente.
Nesse passo a passo estarei demonstrando como eu fiz para funcionar utilizando Windows + WLS2 com Ubuntu.
Acesso o WLS2 com seu prompt de comando favorito.
Verifique se o docker está rodando com o comando
$ docker --version
Se não deu erro, vamos prosseguir.
Agora vamos fazer o download da imagem do MySQL.
Na linha de comando eu vou especificar que quero baixar a versão do MySQL 5.7, caso você queira baixar a ultima versão então digite apenas ‘docher pull mysql’
$ docker pull mysql:5.7
Agora que vamos definir o lugar onde vamos persistir os arquivos (tabelas e registros) gerados pelo MySQL
Crie uma pasta específica em qualquer lugar para salvar as informações do container, eu escolhi salvar dentro da pasta do meu usuário: /home/ramon/mysql/
$ cd ~/
$ mkdir mysql
Agora com a pasta criada, vamos iniciar nosso container com o MySQL.
Para isso basta executar a linha abaixo, eu vou explicar cada parâmetro do comando. Atenção, troque <seu_usuario> para o nome do usuário onde você criou a pasta mysql
$ docker run --name global_mysql -p 3307:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -v /home/<seu_usuario>/mysql:/var/lib/mysql -d mysql:5.7
Vamos para a explicação do comando.
- docker run
Esse comando serve para ‘rodar/iniciar’ alguma imagem que esteja disponível em seu PC - –name global_mysql
Parâmetro para informar o nome da imagem, no caso acima quando gerar a imagem ela terá o nome “global_mysql” - -p 3307:3306
Parâmetro para redirecionamento de porta, esse parâmetro é importante caso você queira acessar o banco de dados de fora da sua WSL2 - -e
MYSQL_ALLOW_EMPTY_PASSWORD
=yes
Parâmetro para informar que não vai ser exigido uma senha de root - -v /home/<seu_usuario>/mysql:/var/lib/mysql
Parâmetro responsável pela persistência dos dados, atenção para trocar <seu_usuario> pelo nome de usuário onde você criou a pasta mysql - -d
Parâmetro que informa ao docker que após criar o container vai liberar a linha de comando para você poder fazer outras coisas, e manter o container rodando. - mysql:5.7
Por fim o nome da imagem que você vai executar.
Pronto, se tudo correr perfeitamente você tem rodando em sua máquina um servidor MySQL pronto para servir qualquer aplicação, até mesmo aplicativos que estejam rodando fora do WSL2. Você também vai conseguir acessar com seu programa que conecta com base de dados como MySQL Workbench, HeidSQL entre outros.
Abaixo segue configuração para acesso do Windows ao seu novo servidor MySQL que está rodando em um container dentro do seu WSL2
Obrigado e até a próxima.