As conexões Mysql para "localhost" por padrão tentam se conectar por um soquete presente na máquina local. Seu DB_HOST deve ser o nome do contêiner vinculado, "db". Dos documentos MYSQL :