Dockerfile: Difference between revisions
Line 12: | Line 12: | ||
Each ''line'' in the Dockerfile generates a new [[Docker_Concepts#Layered_Image|layer]] in the [[Docker_Concepts#Layered_Image|image]]. Multiple commands can be combined on a single line, to reduce the number of layers. | Each ''line'' in the Dockerfile generates a new [[Docker_Concepts#Layered_Image|layer]] in the [[Docker_Concepts#Layered_Image|image]]. Multiple commands can be combined on a single line, to reduce the number of layers. | ||
The Dockerfile is used as the argument of the [[docker build]] command. | |||
=Syntax= | =Syntax= |
Revision as of 04:11, 20 November 2017
External
Internal
Overview
A Dockerfile is a plain text file that defines how a container should look at build time. It contains all the steps that are required to create the image.
Each line in the Dockerfile generates a new layer in the image. Multiple commands can be combined on a single line, to reduce the number of layers.
The Dockerfile is used as the argument of the docker build command.
Syntax
<instruction> <arguments>
Instructions
Instructions are also known as "directives".
ADD
Copies files from the local filesystem into the image.
ADD /something/something_else.conf $MY_PATH
FROM
Specifies the base image.
FROM node:0.10
USER
The user to run a container's processes as.
Also see Docker Security
ENV
Declares environment variable accessible to the processes in the container:
ENV SOMETHING "something else"
RUN
Running commands like yum in the Dockerfile is discouraged because it increases the time it takes for the build to finish. The alternative is to use base images that already have these updates applied.
WORKDIR
Changes the working directory within the context of the image being built, for the rest of the build instructions.
CMD
Defines the command that launches the process to be executed in the container.
CMD [ "somehting", "-arg" ]
MAINTAINER
LABEL
Applies a label to the image.
LABEL "something"="something else" "other label"="some other content"