도도(都刀)는 지금의 충청북도 보은 지역에 신라가 설치한 삼년산군(三年山郡) 출신의 지방 유력자로, 『삼국사기』 권 4 「신라본기」 4 진흥왕 15년 7월조에는 관산성(管山城: 충청북도 옥천) 전투가 벌어졌을 당시 비장(裨將)으로서 삼년산군의 고간(高干)이었던 것으로 기록되어 있다. 고간은 신라 중앙정부에서 지방의 유력자들에게 수여한 외위 가운데 하나인데, 악간(嶽干), 술간(述干)에 이어 세 번째로 높은 등급이다.
한편, 『일본서기』 권 19 흠명기 15년(554) 12월조에 전하는 동일 사건에 관한 기록에서는 '좌지촌(佐知村)'의 사마노(飼馬奴: 말 기르는 노비)인 '고도(苦都)'로도 나온다. 고도는 곡지(谷智)라고도 한다. 도도와 고도의 이름이 달라 양자를 별개 인물로 보고 후자를 전자의 노비로 보는 견해도 있으나, 일반적으로는 동일 인물을 사서에 따라 달리 표기한 것으로 보인다.
신라 측의 입장이 반영된 『삼국사기』 관련 기록에서는 도도의 공을 기려 '고간'이라는 높은 등급의 외위 소지자로 표현하였지만, 백제 측의 전언에 바탕을 두고 작성된 『일본서기』의 기록에서는 그에 대한 증오심이 담겨 노비라는 천한 신분으로 표기한 것으로 보인다. 참고로 관산성전투 당시 도도의 직함으로 나오는 '비장'은 대개 단위 부대의 사령관을 보좌하는 직책을 가리키는데, 진흥왕대에 세워진 「 단양 신라 적성비(丹陽新羅赤城碑)」에 외위를 보유한 인물로 '추문촌당주사인(鄒文村幢主使人)'과 '물사벌성당주사인(勿思伐城幢主使人)'이 나오는 것에 주목하여, 도도 역시 당시 정식 직함은 당주사인(幢主使人)이었을 것으로 추정하는 견해도 있다.
553년 신라군이 한성 일대의 백제군을 공격하여 한강 하류 지역을 탈취하면서 그때까지 120년간 지속되던 나제동맹(羅濟同盟)이 파탄을 맞이하였다. 격분한 백제의 성왕(聖王)은 신라 정벌군을 일으켰고, 태자인 창(昌: 위덕왕)이 백제군을 거느리고 신라의 관산성을 공격하여 승리를 눈앞에 두었는데, 신라 신주(新州) 군주(軍主) 김무력(金武力)이 주병(州兵)을 이끌고 달려가 구원전을 펼쳤다.
이때 성왕이 자신을 대신하여 전쟁터에 나가 고생하는 아들과 백제 군사들을 위로하기 위해 50명의 호위 병력만을 데리고 관산성을 찾아가다가, 정보를 입수하고 매복해 있던 김무력 휘하의 신라군에게 관산성 부근의 구천(狗川)에서 급습을 당한 끝에 사로잡히고 말았다. 삼년산군 출신의 지방 유력자로 신라군의 비장을 맡고 있던 도도가 생포한 성왕을 참살하면서 관산성 일대의 전세는 일거에 역전되었고, 백제군은 좌평 4명과 사졸 29,600명이 희생되는 참패를 당하였다.
도도는 성왕을 붙잡아 죽인 공으로 신라 정부로부터 특별한 포상을 받았을 것이 분명한데, 그의 외위 관등으로 전하는 '고간'이 그런 포상의 일환으로 수여되었을 것으로 여겨진다.