Dockerfile 指令
Dockerfile的基础知识
-
每一条关键字指令必须是大写字母,且后面必须带参数
# 错误实例 From centos FROM -
指令从上到下,顺序执行
-
# 表示注释
-
每条指令都会创建一个新的镜像层,并且commit成为一个新的镜像
执行大致流程
- 1.docker从基础镜像(也就FROM)中运行一个容器
- 2.执行每一条指令并对容器做出修改
- 3.执行类似docker commit的操作提交一个新的镜像层
- 4.然后再基于刚提交的镜像运行一个新的容器
- 5.执行dockerfile中的下一个指令直到所有的指令都执行完成
指令详解
最新指令请参考官方文档
FROM //基础镜像,当前的镜像是基于哪个镜像的
MAINTAINER //镜像维护者的姓名和邮箱地址
RUN //容器构建时需要运行的命令
EXPOSE //当前容器对外暴漏的端口
WORDKDIR //指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
ENV //用来构建镜像过程中设置环境变量
ADD //将宿主机目录下的文件拷贝到镜像且ADD命令会自动处理URL和解压tar压缩包
COPY //类似ADD,拷贝文件和目录到镜像中,将构建上下文目录中《源路径》的文件/目录
//复制到新的一层的镜像内的《目标路径》的位置,不同ADD的是COPY不会处理解压
VOLUMBE //容器数据卷,用于数据保存和持久化工作
CMD //1.指定一个容器启动时要运行的命令
//2.Dockerfile中可以有多个CMD指令,但只有最后一个指令生效
//3.CMD会被docker run之后的参数替换
ENTRYPOINT //1.指定一个容器启动时要运行的命令
//2.ENTRYPOINT和CMD的目的一样,不同的是ENTRYPOINT不会被docker run之后的参数替换
ONBUILD //当构建一个被继承的DOckerfile时运行命令
//父镜像在被子镜像继承后父镜像的ONBUILD被触发





网友评论