In DC microgrids, if the oscillatory current is not shared among DGs, it may cause unallowable voltage distortion and overcurrent. In this paper, a distributed cooperative control scheme is introduced for DC microgrids in order to effectively share both the DC and the oscillatory components of current among DC sources. The hierarchical control method comprises four primary controllers namely voltage controller, conventional droop, oscillatory current droop and virtual conductance units, and three secondary controller units based on cooperative control principles. The primary controllers on each DG unit only use DGs' local information, while secondary controllers also require information of other DG units. In the secondary control part, firstly, via using the cooperative control, the DC current-sharing becomes accurate. Then, a novel droopbased oscillatory current-sharing controller unit is proposed in which by using the consensus method the error of oscillatory current-sharing is significantly reduced. A voltage observer, based on cooperative control is employed to compensate the inevitable voltage drop in DC microgrid, caused by droop controller. The voltage oscillation caused by oscillatory current-sharing unit is decreased through implementation of a virtual conductance signal applied to the inner current controller. The presented method is validated by a simulation with several cases.