Este projeto visa usar o mysql através do docker para que se possa treinar os comandos SQL, Administrar o Banco de dados, Gerenciar usuário e etc.
É interresante que possuoa algum programa visual para acessar o banco de dados, por exemplo, DBeaver ou Navicat, ou qualquer outro programa que prefira utilizar.
Este arquivo de configuração do docker, especifica o que seránecessário para que a imagem do MySQL v5.7 possa ser carregada via container. A partir do mesmo diretório deste arquivo, pode-se execcutar o comando para "ligar" o container.
docker-compose -f "docker-compose.yaml" up -d --build --remove-orphans
Ao executar o comando, o arquivo docker-compose.yaml será lido e a partir dele, algumas configurações serão solicitadas, como por exemplo, expor a porta 3306 para outros programas possam acessar o banco de dados.
É possivel utilizar o arquivo dentro da pasta docker/env/mysql.env para setar as variaveis de ambiente que o MySQL vai carregar ao iniciar o container. Por Exemplo, dizer que a senha do usuario ROOT será MySQL@root da seguinte maneira:
MYSQL_ROOT_PASSWORD=MySQL@Root
Alguns comandos que podem ajudar no gerenciamento do container:
Acesso ao sistema onde o mysql está instalado dentro do container ( no caso, linux )
- docker exec -it dba_mysql bash
Dentro do container, você poderá executar comandos MySQL diretamente no "servidor", por exemplo:
mysql -u root -p
- docker image list
- docker network prune --force
- docker image prune --force
- docker volume prune --force
- docker-compose -f "docker-compose.yaml" up -d --build --remove-orphans
- docker-compose down --remove-orphans
O docker, através do recurso de Volume, permite que seus arquivos persistam ao ligar e desligar o container.
/sql
Esta pasta corresponde a pasta que será carregada dentro do container /app/sql que esta definida no arquivo docker-compose.yaml como "working_dir".
Baseado na minhas necessidades, a instalação que realizei e que descrevo abaixo como requisitos, engloba usar o linux e não o Hyper-v por padrão, contudo, os itens marcados com + são necessários:
- Virtualização via Bios +
- Adicionais do windows: Hyper-v +
- Adicionais do windows: Windows subsystem linux
- Windows 10 build > 2004
- Win wsl 2
- Git +
- Docker Desktop ( instalação default ) +
- Visual studio code + plugin docker
(para o gerenciamento visual do docker)
Para instalar este projeto, é necessário ter instalado antes:
- git
https://git-scm.com/download/win - Docker Desktop
https://www.docker.com/products/docker-desktop
Tendo instalado os programas acima no padrão "next, next, finish", confirme se o ambiente está ok da seguinte forma:
- Abre o Windows Terminal, ou Git Bash, ou o CMD, etc..
- Execute o comando:
git --version para ver o resultado, deve ser algo como:
c:\ git --version
git version 2.28.0.windows.1
Agora, execute o comando para o docker:
c:\ docker --version
Docker version 19.03.3, build 2355349d-
Confirmando a instalação do git, crie uma pasta "projeto" (ou como desejar) em C:\ , ou onde preferir, e execute o comando:
C:\projeto\ git clone https://github.com/grdonda/docker_mysql.git
Será criada uma pasta dentro da pasta projetos com o nome docker_mysql e dentro dela com os arquivos do projeto.
Para que o container possa ser "ligado", dentro da pasta docker_mysql execute o comando:
docker-compose -f "docker-compose.yaml" up -d --build --remove-orphans
Agora utilizando o visual studio code, será possivel acessar via plugin do docker, gerenciamento visual do container.
Consulte os link e referencias para melhor entendimento !!!
- https://docs.microsoft.com/pt-br/virtualization/windowscontainers/manage-docker/configure-docker-daemon
- https://docs.docker.com/docker-for-windows/install/
- https://code.visualstudio.com/docs/containers/overview
- Docker Desktop: https://www.docker.com/products/docker-desktop
- Wsl 2: https://docs.microsoft.com/pt-br/windows/wsl/wsl2-kernel
- Visual Studio Code: https://code.visualstudio.com/download
- Visual Studio Code - Docker plugin: https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker