Gmina Buk is an urban-rural gmina (administrative district) in Poznań County, Greater Poland Voivodeship, in west-central Poland. Its seat is the town of Buk, which lies approximately 28 kilometres (17 mi) west of the regional capital Poznań.
The gmina covers an area of 90.32 square kilometres (34.9 sq mi), and as of 2006 its total population is 11,917, of which the population of Buk is 6,181, and the population of the rural part of the gmina is 5,736.
Apart from the town of Buk, Gmina Buk contains the villages and settlements of Cieśle, Dakowy Suche, Dobieżyn, Dobra, Kalwy, Niepruszewo, Otusz, Pawłówko, Szewce, Szewce-Zgoda, Sznyfin, Wielka Wieś, Wiktorowo, Wygoda, Wysoczka and Żegowo.
Gmina Buk is bordered by the gminas of Dopiewo, Duszniki, Granowo, Opalenica, Stęszew and Tarnowo Podgórne.