Para tener una instancia de MySQL dentro de un contenedor solo necesitamos de la configuración correspondiente dentro del archivo docker-compose.yml.

**version: "3.3"
#versión de YAML

services:
  mysql_db:
	#nombre del microservicio
    image: mysql:latest
    environment:
			#env variables
      - MYSQL_ROOT_PASSWORD=root_user_password 
			#password para el root user
      - MYSQL_DATABASE=db_name
    ports:
      - 3306:3306
			#mysql corre en el puerto 3306, así que vinculamos dicho puerto de nuestra máquina con ese mismo puerto del contenedor.
    volumes:
      - ./mySQL_data:/var/lib/mysql
			#se crea un volumen para que la data de mysql no se pierda al momento de detener el contenedor.**

Y listo! Ya solo queda ejecutar docker-compose up y el contenedor con la instancia de mysql se ejecutará!

Si cambiamos algo dentro de docker-compose.yml entonces debemos borrar el volumen que creamos para que así mySQL tomé los nuevos cambios, de otra forma los cambios no se van a aplicar.

Ahora podemos preguntarnos: ¿Y cómo me conecto a esa instancia de postgres?

Muy simple! solo debemos ir a nuestra terminal y ejecutar:

docker-compose exec mysql_db mysql -u root -p

Esto te pedirá la contraseña que se definió para el usuario root (en la variable MYSQL_ROOT_PASSWORD dentro de docker-compose.yml) y después de que se verifique la contraseña, mysql nos dará acceso a su línea de comandos.

Si queremos crear un nuevo usuario aparte de root, podemos usar las variables de entorno MYSQL_USER y MYSQL_PASSWORD dentro de la configuración del servicio de mySQL.

Ahora, si es que mejor queremos tener un cliente gráfico, como phpMyAdmin, nada más tenemos que configurar un nuevo microservicio que nos permita usar dicha herramienta.

**services:
	#config de arriba
	php_my_admin:
		image: phpmyadmin/phpmyadmin
    environment:
      - PMA_HOST=mysql_db
			#el nombre del servicio que está ejecutando la base de datos.
      - PMA_PORT=3306
			#el puerto de nuestra máquina en el que está expuesta la conexión a la base de datos.
    ports:
      - 8080:80
			#se vincula el puerto 8080 del host con el puerto 80 de el contenedor.
    depends_on:
      - mysql_db
			#le indicamos a docker-compose que este servicio depende del servicio de la base de datos.**

Ya como último paso simplemente debemos ir a localhost:8080 y allí encontraremos la interfaz de phpMyAdmin, esta nos pedirá el username (que es root) y la contraseña para dicho usuario (que es la misma que declaramos en la variable MYSQL_ROOT_PASSWORD dentro de docker-compose.yml) y después de que verifique las credenciales nos dejará acceder a la base de datos.