We will take the LTS MySQL 5.7 for this tutorial.

For more info go to mysql @dockerhub

Installing & Configuring Docker MySQL

sudo docker pull mysql/mysql-server:5.7
sudo docker run --name=project-mysql-5.7 -d -p 3306:3306 mysql/mysql-server:5.7
sudo docker logs project-mysql-5.7

Then do :

sudo docker logs project-mysql-5.7 2>&1 | grep GENERATED
Note
exemple output: GENERATED ROOT PASSWORD: EbyKamogUl5yDiqur4SoGZAGAzzi

Connect to your MySQL instance

sudo docker exec -it project-mysql-5.7 mysql -uroot -p
Note
you’ll need to use the GENERATED ROOT PASSWORD if it’s firt time connection

Change the root passwd

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_password');
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';

Create a database and user with remote access

CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';

CREATE DATABASE your_username;

GRANT ALL PRIVILEGES ON your_username.* TO 'your_username'@'%';