Bucket

Buckets are tools used to carry water, lava, milk and fish (cod, pufferfish, salmon, and tropical fish only.)

Usage
Empty buckets can be used to "pick up" a water or lava source block by pressing item on a block of the relevant type.

Similarly one can press when looking at a cow to fill a bucket with milk.

Empty buckets can also be used to collect fish in buckets.

A bucket filled with a source block can then be used to place its source block contents in the empty block next to the side of the block the player is currently looking at, or replacing the block looked at for some replaceable blocks.

A bucket full of milk can be emptied only by drinking it or by using it in crafting a recipe (like cake).

An empty bucket fills with water when placed in the fuel slot of a furnace while smelting a wet sponge.

An empty bucket can be used to empty a cauldron with water, filling the bucket with water. This does not work with dispensers.

An empty bucket can be used to empty a cauldron with lava, filling the bucket with lava. This does not apply to Java Edition.

Data values
$$, buckets use data values to determine contents. Once used, each data value is set to 0 (Empty Bucket). If no data value is provided, the data value is 0.