Dockerfile常用保留字指令

1. FROM

用于指定基础镜像,是Dockerfile的起始指令,新镜像会基于该基础镜像构建(如 FROM ubuntu:20.04 或 FROM tomcat:8 ),是镜像构建的“基础模板。


2. MAINTAINER

标注镜像维护者的姓名和邮箱


3. RUN

容器构建阶段( docker build 时)执行的命令,用于安装依赖、配置环境等操作,有两种格式:

shell格式:如

RUN apt-get install vim

,直接调用系统shell执行命令。

exec格式:如

RUN ["apt-get", "install", "vim"]

,以数组形式执行。


4.EXPOSE

声明容器运行时监听的端口


5.WORKDIR

作用是指定容器创建后,终端默认进入的工作目录,也会作为后续Dockerfile指令(如 RUN / COPY / ADD )的执行目录,相当于给容器操作设置了“默认落脚点”。


6.USER

指定该镜像以什么样的用户执行,默认root


7.ENV

设置容器内的环境变量,可被后续指令和运行时引用。


8.ADD

将宿主机目录下的文件拷贝进镜像且自动处理URL和解压tar压缩包。


9.COPY

和ADD类似

COPY 是Dockerfile中用于将本地主机的文件/目录复制到镜像(容器)内指定路径的指令。

普通格式:

COPY src dest

(<src源路径>:源文件或者源目录)

exec格式:

 COPY ["src", "dest"]

(<dest目标路径>:容器内的指定路径,该路径不用事先建好,路径不存在会自动创建)


10.VOLUME

容器卷,用于数据保存和持久化工作


11.CMD

指定容器启动后默认执行的命令

注:一个Dockerfile里写多个 CMD ,只有最后一个会生效,CMD会被docker run之后的参数替换。

CMD是在docker run时运行的。

RUN是在docker build时运行的。

CMD三种格式:

shell 格式:

CMD <命令>

exec 格式:

CMD ["可执行文件", "参数1", "参数2"...]

参数列表格式:

CMD ["参数1", "参数2"...]

,在指定了 ENTRYPOINT 指令后,用 CMD 指定具体的参数。


12.ENTRYPOINT

也是用来指定一个容器启动时要运行的命令

 类似于 CMD 指令,但是ENTRYPOINT不会被docker run后面的命令覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程。

注:ENTRYPOINT 的命令不会被 docker run 后的命令直接覆盖,只会将后者作为参数传递给 ENTRYPOINT ,这是和 CMD 的核心区。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)