1. RUN
运行指定命令
format:
RUN command
默认将在shell终端中运行命令,即/bin/sh -c
RUN ["executable", "param1","param2"]
可以指定终端类型,指令会被解析为JSON数组,因此必须用双引号, 且使用exec执行,不会启动shell环境
每条RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像层。当命令较长时可以使用\来换行。例如:
2,CMD;
CMD指令用来指定启动容器时默认执行的命令。
CMD的三种命令格式
CMD ["executable", "param1", "param2"]:
相当于执行executable param1 param2,推荐方式
CMD command param1 param2:
在默认的Shell中执行,提供给需要交互的应用
CMD ["param1", "param2"]:
提供给ENTRYPOINT的默认参数。每个Dockerfile只能有一条CMD命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候手动指定了运行的命令(作为run命令的参数),则会覆盖掉CMD指定的命令。
3. ADD
添加内容到镜像。
format: ADD src test
该命令将复制指定的src路径下内容到容器中的dest路径下。其中可以是Dockerfile所在目录的一个相对路径(文件或目录);也可以是一个URL;还可以是一个tar文件(自动解压为目录)dest可以是镜像内绝对路径,或者相对于工作目录(WORKDIR)的相对路径。路径支持正则格式,例如:
ADD *.py /test/
4. COPY
复制内容到镜像
format: COPY src dest。
复制本地主机的src(为Dockerfile所在目录的相对路径,文件或目录)下内容到镜像中的dest。目标路径不存在时,会自动创建。路径同样支持正则格式。COPY与ADD指令功能类似,当使用本地目录为源目录时,推荐使用COPY。