![[create-docker-image.png]] The docker file is made up of multiple components * ***FROM**: Allows you to build docker image based on a base image. In this case, we are from a base image that already has node installed since the application being developed relies on node. * **ENV**: Allows you to set environment variables that will be available when a container is created from the image. Environment variables can be set in the docker file or when starting a container for a given image. Changing environment variables will require rebuilding the docker image when the variables are put in the file itself. Therefore it is better to set environment variables when starting container for a given image. * **RUN**: Allows you to run any linux command inside of the container created. There can be multiple RUN commands. * **COPY**: Allows you to copy a directory from the host machine to a directory inside of the container created. * **CMD**: Allows to to specify a single entry point command inside of the container.