Docker入门10 - Dockerfile - 常见操作指令

166 阅读2分钟

1. RUN
运行指定命令
format:
RUN command
默认将在shell终端中运行命令,即/bin/sh -c

RUN ["executable", "param1","param2"]
可以指定终端类型,指令会被解析为JSON数组,因此必须用双引号, 且使用exec执行,不会启动shell环境

每条RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像层。当命令较长时可以使用\来换行。例如:

image.png

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。