신라시대에는 국가에서 사용하는 얼음을 보관하던 창고였으며, 이를 관장하던 관서로 빙고전(氷庫典)이 있었다. 빙고가 언제 설치되었는가는 확실치 않으나 늦어도 6세기 전반기에는 설치된 것으로 여겨진다. 즉 505년(지증왕 6) 11월에 왕명으로 얼음을 저장해 쓰게 한 것으로 보아 6세기 경에는 설치된 것으로 보인다.
그 뒤 고려시대에 내려와서도 이를 위한 빙고가 있었을 것으로 예상되나 구체적인 기록은 보이지 않는다. 이어 조선시대에 오면 초기에 벌써 제도화되어 1405년(태종 5)에는 육조의 업무 중 예조에 속하게 되었다.
두모포(豆毛浦)에 동빙고, 둔지산(屯地山)에 서빙고 등 두 빙고를 설치하였다. 처음에는 개천의 구정물을 피하려고 빙고와는 20리 떨어진 연파곤(淵波昆)에서 채빙(採氷), 운반했는데 성종 때부터 가까운 저자도(楮子島)에서 채빙해 저장하였다. 동빙고에는 제향(祭享) · 공불(供佛) 등에 사용할 얼음 1만 2,044정(丁), 서빙고에는 어선(御膳) · 빈식(賓食), 그리고 백관에게 반급(頒給)할 얼음 13만 4,974정을 보관하였다.
이를 관할하는 관원으로 제조(提調) 1인, 별좌(別坐, 종5품), 별제(別提, 6품), 별검(別檢, 8품)을 두었는데 별좌 이하는 4인으로 하였다. 뒤에 별좌를 없애고 모든 관원을 절반으로 줄여 동빙고와 서빙고에 각각 1인씩 두었다.
장빙(藏氷)을 위해서는 겨울철에 강물이 두껍게 얼었을 때 채빙해 빙고까지 운반해야 했고 여기에는 목재 · 볏짚 · 솔가지 등 잡물이 필요했으므로, 동빙고에 10명, 서빙고에 40명의 빙부(氷夫)를 배치하였다. 또한 장빙은 단기간 내에 이루어져야 하므로 인근의 백성과 정병(正兵)을 동원하기도 했고 침몰 · 동상 등에 대비, 의원을 배치하였다. 또, 제향에 쓸 얼음을 장빙할 때는 빙고의 관원 외에 봉상시(奉常寺)의 관원이 감독하였다.
빙고에 저장된 얼음은 비변사 · 승정원 · 홍문관 · 시강원(侍講院) · 익위사(翊衛司) · 춘추관 · 병조 · 내의원(內醫院) · 양현고(養賢庫) 등 제사(諸司)와 종친 · 문무당상관 · 내시부당상관, 70세 이상 한산당상관이나 활인서(活人署)의 환자, 그리고 의금부 · 전옥서(典獄署)의 죄수에게도 지급했는데, 제사는 5월 15일부터 7월 14일까지, 그 밖에는 6월 한 달 동안 지급하였다.
단, 제향을 위한 공빙(供氷 : 상급관청이나 고관에게 얼음을 올림.)은 3월 1일부터 상강일까지, 대궐의 각전(各殿) 공상(供上)은 2월 1일부터 10월 말일까지로 하였다. 만일 빙고에서 얼음을 잘못 저장해서 중추(仲秋) 이전에 얼음이 다하면 담당 관원은 처벌을 받았다. 또 겨울에 얼음이 두껍게 얼기를 기원하는 사한제(司寒祭)를 지내기도 하였다. 궐내에는 따로 내빙고를 두었다.