Primero que nada, asegúrate que en el archivo docker-compose.yml tienes definida la imagen de tu base de datos. Echa un vistazo al código y verás que usa varias variables de .env para generar los datos de configuración de la imagen.
Aunque en la documentación de Laravel no lo menciona, al menos por el momento, es posible definir que quieres que MySQL o MariaDB esté disponible en un puerto determinado del ordenador host.
Para ello, tienes que editar el archivo .env y colocar esta línea:
FORWARD_DB_PORT=3306
Aunque, si tienes ocupado ya ese puerto 3306 en el ordenador host, porque exista otro sistema gestor de base de datos MySQL o MariaDB instalado y corriendo directamente en la máquina, podrías hacer un forward de otro puerto cualquiera:
FORWARD_DB_PORT=3307
Una vez editado el .env tienes que parar sail y volverlo a arrancar.
Los datos de conexión a MySQL / MariaDB / PostgreSQL son los que tienes el el .env de tu proyecto Laravel en local, ya que el archivo de configuración docker-compose.yml simplemente lee esos datos para crear las imágenes y hacer el aprovisionamiento de las bases de datos.
El puerto de conexión será el que tienes en la variable de entorno que acabo de mencionar: FORWARD_DB_PORT
Ahora, en HeidiSQL, que es el sodtware de acceso a MySQL que estoy usando ahora, configuro la conexión con los siguientes valores:
- Tipo de red: MariaDB or MySQL (TCP/IP)
- Host: 127.0.0.1
- Usuario: sail
- Password: password
- Puerto: 3307
- Base de datos: laravel