2003 Jeep makes loud rumbling engine noise when it's below 20 degrees after going only 3 miles

My 2003 Jeep Liberty has almost 106.000 miles on it, and within the past week, the engine has started making a loud rumbling noise and knocking only on the mornings when it is below 20 degrees and only after I have gone 2 or 3 miles from home. It only does it in the morning, and I have tried warming it up before taking off, which didn’t help… I took it to my mechanic, and of course, it didn’t act up for him, I believe, because the morning he had it, the outside temp. was above 20 degrees.
All 3 times it has done it, it quits within 10 to 15 seconds.
Any ideas what this could be?