Bundles are usually defined as being locally trival thingamajigs. A trivial bundle with fiber $F$ looks like the projection map $U \times F \to U$. A section of a trivial bundle is just a function $U \to F$. A global function on a manifold is the same as a bunch of local functions that literally agree on the overlaps. Similarly a global section of a bundle is the same as a bunch of local sections (which, again, are just functions) that "agree" on the overlaps, where now "agree" does not mean literally agree, but "agree after a twist", where the "twists" comes from the transition functions of the vector bundle.

Whenever we have a bundle, we can form a sheaf out of it. The corresponding sheaf is the one which maps open sets $U$ to the set of sections of the bundle over $U$. Conversely, if we have a sheaf on a space $X$, it is possible to construct a space $Y$ and a map $Y \to X$ such that the "sections" of the sheaf correspond to the actual sections of the map $Y \to X$. This is called the espace étalé and is discussed [here][1] and somewhere in Hartshorne chapter II section 1.

You may also be interested in looking at Hartshorne chapter II exercise 5.18.


  [1]: https://mathoverflow.net/questions/6477/applications-of-the-other-definition-of-sheaves