Bucket

Buckets are tools used to carry water, lava, or milk.

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 or a mooshroom to fill a bucket with milk.

If you use a water bucket on a fish mob such as salmon, cod, or pufferfish it will give you a salmon bucket, cod bucket, or pufferfish bucket, respectively. There is also a clownfish bucket texture that doesn't exist in-game.

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 fish bucket will place it's type of fish along with a water source block.

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

An empty bucket can be used to empty a full cauldron, filling the bucket with water.

Bedrock Edition
Buckets use data value to distinguish the empty bucket, water bucket and lava bucket.

Trivia

 * In Bedrock Edition, buckets can hold any block, with the data value corresponding with what will be placed. An exception to this is stone, whose data value is replaced by the milk bucket. Keep in mind all of the special buckets can only be obtained with an external editor or commands.They have the normal bucket sprite.