I could find many resources online about vowel length in English and in American English, but I got to say that although they're interesting, no one directly answers the question "what the length of each vowel in comparison to all the others?"
I do understand that the answer may vary for different regional accents, but let's limit ourselves to the theoretical GenAm for a second.
The way I see/hear it, all the vowels in GenAm are "short"** in the way that non of them should be artificially elongated, and they differ in 3 levels of "shortness":
Extremely short: ə (before l/m/n/r - mostly dropped entirely - correct -> crrect)
Intrinsically short: ɪ, ɛ, ʊ
short : i, u , æ, ʌ, ɑ, ɔ, all the diphthongs.
Having a voiced consonant after a vowel makes it longer, but the relative "shortness" is still preserved.
Having the stress on a vowel makes it longer, but the relative "shortness" is still preserved.
For me, "bed" sounds shorter than "bad", "beat" sounds longer than "bit", "foot" sounds shorter than "root" and so one.
"lock" sounds a little bit longer than "luck" but not long enough to have a different category.
Am I correct?
** "Long vowel" for me, is for example what I can hear in classical Arabic, where the speaker really makes the vowel noticeably longer, so "sallam"(gave away) is way shorter than "salaam" (hello, peace). the American vowels remind me the vowels in modern Hebrew length wise, all of them are kinda short.