  In this survey we describe a recently-developed technique for bounding the
number (and controlling the typical structure) of finite objects with forbidden
substructures. This technique exploits a subtle clustering phenomenon exhibited
by the independent sets of uniform hypergraphs whose edges are sufficiently
evenly distributed; more precisely, it provides a relatively small family of
'containers' for the independent sets, each of which contains few edges. We
attempt to convey to the reader a general high-level overview of the method,
focusing on a small number of illustrative applications in areas such as
extremal graph theory, Ramsey theory, additive combinatorics, and discrete
geometry, and avoiding technical details as much as possible.
