DockerFile解析
⒈是什么?
DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本文件。
⒉步骤
①手动编写一个符合规范的DockerFile文件(编写)
②使用docker build执行这个文件生成自定义镜像(构建)
③docker run(执行)
*
DockerFile =》 软件原材料
Docker镜像 =》 软件交付品
Docker容器 =》 软件运行态
DockerFile面向开发,Docker镜像成为交付标准,Docker容器则设计部署与运维,三者缺一不可,合力充当Docker体系的基石。
⒊Docker执行DockerFile的大致流程
①Docker从基础镜像运行一个容器
②执行一条执行并对容器作出修改
③执行类似docker commit的操作提交一个新的镜像层
④Docker再基于刚提交的镜像运行一个新容器
⑤执行DockerFile中的下一条执行直到所有指令全部执行完成
⒋指令
⒈FROM
基础镜像,当前新镜像是基于那个镜像的。
⒉MAINTAINER
镜像维护者的姓名和邮箱地址
⒊RUN
容器构建时需要运行的命令
⒋EXPOSE
当前容器对外暴漏的端口号
⒌WORKDIR
指定在创建容器后,终端默认登陆进来的工作目录
⒍ENV
用来在构建镜像过程中设置环境变量
⒎ADD
将宿主机目录下的文件拷贝进镜像且ADD指令会自动处理URL和解压tar压缩包
⒏COPY
类似ADD指令,拷贝文件和目录到镜像中,没有下一步操作,不会解压等。
⒐VOLUME
容器数据卷,用于数据保存和持久化工作
⒑CMD
指定一个容器启动时要运行的命令
DockerFile中可以有多个CMD指令,但只有最后一个会生效
CMD指令会被docker run之后的参数替换
⒒ENTRYPOINT
指定一个容器启动时要运行的命令
⒓ONBUILD
当构建一个被继承的DockerFile时运行命令,父镜像在被子继承后父镜像的ONBUILD指令将被触发
⒌指令相关
①每条指令必须为大写字母且后面至少跟随一个参数
②指令按照从上到下,顺序执行
③#表示注释
④每条指令都会创建一个新的镜像层,并对镜像进行提交
⒍如何构建?
docker build -f [DockerFile的绝对路径] -t 镜像名称:版本号
⒎Docker父镜像
Base镜像(scratch),父镜像,基镜像,相当于C#/Java中的Object类,99%的镜像都是通过Base镜像构建出来的。