Dockerfile: blueprint for an image that defines what goes on in the environment inside a container.
Image: an executable package that includes everything needed to run an application --the code, a runtime, libraries, environment variables, and configuration files.
Container: a runtime instance of an image --what the image becomes in memory when executed (that is, an image with state, or a user process).