FROM: base imageFROM alpine:latest
LABEL: metadata
CMD: default executable run by the container (can be overridden)ENTRYPOINT: like CMD but cannot be overridden
EXPOSE: what port the container app is running on (metadata only, not a config)Those commands create a new layer. Less layer == better so minimize them.
RUN: execute command in a new layer
COPY: copies NEW files/folder from host to container
ADD: like COPY but can be from a remote url