The resignation comes ahead of the ODI series against England, which begins on 15 January.
The wicketkeeper will, however, remain available for selection for the three-match series and the three subsequent Twenty20 internationals.
Dhoni, 35, had been India's limited-overs captain since September 2007.
Under his leadership, India won the 2007 World Twenty20, 2011 World Cup and 2013 Champions Trophy.
Test captain Virat Kohli - ranked second in the world's ODI batting rankings - is the leading candidate to replace Dhoni.