Dockerfile 制作常用命令总结

1.FROM( from ) :

FROM :

from 表示选择一个镜像作为基础镜像(在一个Dockerfile 中可以使用多条from,来构建多个镜像)

2.ENV :=

用来在镜像创建出的容器中声明环境变量,如:

ENV PYTHONIOENCODING='utf-8'

声明python中文环境变量默认为‘utf-8’

3.WORKDIR

WORKDIR:

用来指定当前的工作目录,使用该命令后,接下来的每一层的工作目录都会切换到指定的目录

4.COPY

copy

复制本机中的目录到镜像指定的目录下

5.ADD

ADD

add 与copy 功能相似,都支持将本地的文件复制到镜像指定目录中,但是add还可以添加网络文件下载地址以及压缩归档文件,推荐使用copy

6.RUN

RUN (shell格式)

RUN ["executable", "param1", "param2"] (exec格式,推荐使用)

run 指令会在前一条命令创建出的镜像的基础上创建一个容器,并在容器中执行run 后面的命令,在命令结束后会将该容器提交给镜像并成为新的镜像

7.CMD

CMD (shell格式)

CMD ["executable", "param1", "param2"] (exec格式,推荐使用)

CMD ["param1", "param2"] (为ENTRYPOINT指令提供参数)

cmd 指令为容器运行时提供默认的命令或参数,一个DockerFile 可以有多条CMD指令,但是只有最后一条CMD指令有效

.run 命令行会覆盖CMD命令

8.ONBUILD

ONBUILD 指令后面跟的是其它指令,例如 RUN , COPY 等。这些指令,在当前镜像构建时不会被执行,当以当前镜像为基础镜像,构建下一级镜像时才会被执行

9.ENTRYPOINT

ENTRYPOINT (shell格式)

ENTRYPOINT ["executable", "param1", "param2"] (exec格式,推荐格式)

entrypoint 与 cmd 命令类似,都是为容器提供默认的启动命令,但是cmd可以添加参数,而entrypoint只能提供命令,注意run 命令行会覆盖CMD命令,但是不能覆盖entrypoint

10.VOLUME

VOLUMN ["", "路径2"...]

VOLUMN

volume命令可以将容器作为匿名卷挂载到宿主机目录上。在执行docker run时,如果没有指定 -v 选项,则默认会将VOLUMN指定的目录挂载为匿名卷

11.EXPOSE

EXPOSE [ ...]

为该镜像生成的容器提供默认的服务端口(不指定expose 命令的话,容器是默认不暴露端口,只能在启用容器时使用-p暴露端口)

猜你喜欢

转载自blog.csdn.net/weixin_44312422/article/details/132816364