Como alguien señaló en los comentarios, el archivo docker-compose que proporcionó es muy relevante para su pregunta.
La documentación para links
en los archivos docker-compose dice
En su caso, el contenedor de la base de datos se llama db
, entonces resolviendo db
host del contenedor de PHP debería indicarle el contenedor de MySQL. Reemplazo de localhost
con db
en su archivo de configuración debería permitir que el contenedor de PHP se conecte a MySQL.