【笔记于学习尚硅谷课程所作】

6、DockerFile解析

6.1 DockerFile简介

​  定义:Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。

​ 构建步骤:

  1. 手动编写一个dockerfile文件,当然,必须要符合file的规范
  2. 直接docker build命令执行,获得一个自定义的的镜像
  3. run

6.2 DockerFile构建过程解析

1.基础知识

  • 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
  • 指令按照从上到下,顺序执行
  • #表示注释
  • 每条指令都会创建一个新的镜像层,并对镜像进行提交

2.Docker执行Dockerfile的大致流程

  1. docker从基础镜像运行一一个容器
  2. 执行一条指令并对容器作出修改
  3. 执行类似docker commit的操作提交一个新的镜像层
  4. docker再基于刚提交的镜像运行一个新容器
  5. 执行dockerfile中的下一条指令直到所有指令都执行完成

3.总结

​  Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。

Docker--DockerFile

  • Dockerfile:需要定义一个Dockerfile,Dockerfile定义了进程需要的一切东西。
  • Docker镜像:Dockerfile定义一个文件之后,docker build时会产生一个Docker镜像,当运行 Docker镜像时,会真正开始提供服务
  • Docker容器:容器是直接提供服务的

6.3 DockerFile体系结构(保留字指令)

  • FROM:基础镜像,当前新镜像是基于哪个镜像的
  • MAINTAINER:镜像维护者的姓名和邮箱地址
  • RUN:容器构建时需要运行的命令
  • EXPOSE:当前容器对外暴露出的端口
  • WORKDIR:指定 在创建容器后,终端默认登陆的进来工作目录,一个落脚点
  • ENV :用来在构建镜像过程中设置环境变量【ENV MY_PATH /usr/mytest 这个环境变量可以在后续的任何RUN指令中使用,这就如同在命令前面指定了环境变量前缀一样也可以在其它指令中直接使用这些环境变量】
  • ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
  • COPY:将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置。类似ADD,拷贝文件和目录到镜像中。【两种方式:1.COPY src dest 2.COPY [“src”, “dest”]】
  • VOLUME:容器数据卷,用于数据保存和持久化工作
  • CMD:指定一个容器启动时要运行的命令。Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD 会被dockerrun之后的参数替换
  • ENTRYPOINT:指定一个容器启动时要运行的命令。ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数,但是ENTRYPOINT会追加命令,而不是只生效最后一个
  • ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发
    Docker--DockerFile

6.4总结

Docker--DockerFile

相关文章: