DockerFile是什么
它是用来创建镜像的一个文件,即可以根据我们实际的业务需求来自定义镜像。
保留字指令
DockerFile的保留字就相当于Linux里面的命令,从上至下依次运行,每运行一条指令,都会提交一个新的镜像,所以我们从仓库里拉出来的镜像都是一层一层的。
常用的指令:
- FROM: 表示基础镜像,当前新的镜像是基于哪个镜像的。
- MAINTAINER: 镜像维护者姓名和邮箱地址
- RUN: 容器构建时需要运行的命令
- EXPOSE: 当前容器对外暴露的端口
- WORKDIR: 指定在创建容器后,终端默认登录进来的工作目录,相当于登录容器后的落脚点
- ENV: 用来在构建镜像过程中设置环境变量
- ADD: 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar的压缩包
- COPY: 类似ADD,但不具有解压功能,就是单纯的拷贝
- VOLUME: 容器的数据卷,用于数据的保存和持久化工作
- CMD: 指定一个容器启动时候要运行的命令,若文件中有多个此命令,且只有最后一个起作用,它也会被run命令之后的参数替换
- ENTRYPOINT: 指定一个容器启动时候要运行的命令,它和CMD不同,会将命令追加,并不会被替换
- ONBUILD: 当构建一个被继承的DockerFile时运行命令,父镜像在被子类继承后,父镜像的onbuild命令会被触发
面试的时候经常会问 CMD 和 ENTRYPOINT 的异同。