The former Tottenham, Swansea, Cardiff, QPR, Southampton and Liverpool centre-back has signed an 18-month deal.
The 26-year-old scored on his England debut against Sweden in a 2012 friendly but has never won a second cap.
Last summer he opened up on his battles with mental illness, gambling and alcohol problems before making a return from a serious hip injury with QPR.
But he only made four appearances this season, the last in September, and left Loftus Road by mutual consent in late December.
Dundee revealed Caulker had trained with his new team-mates on Thursday morning ahead of signing his contract.