A plain text file of step-by-step instructions that tells Docker how to build an image for your app — install these dependencies, copy this code, run this command. Docker reads it top to bottom to produce a portable, self-contained image.