Dockerfile简介
Dockerfile 是一个文本文件
包含了一条条的指令
每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
对于开发人员:可以为开发团队提供一个完全一致的开发环境
对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了
对于运维人员:在部署时,可以实现应用的无缝移植
镜像的定制实际上就是定制每一层所添加的配置、文件。我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,这个脚本就是Dockerfile。
Dockerfile是一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
dockerfile,相当于是一个文档,客户可以基于dockerfile生成新的容器
dockerfile仅仅是用来制作镜像的源码文件,是构建容器过程中的指令,docker能够读取dockerfile的指定进行自动构建容器,基于dockerfile制作镜像,每一个指令都会创建一个镜像层,即镜像都是多层叠加而成,因此,层越多,效率越低,创建镜像,层越少越好。因此能在一个指令完成的动作尽量通过一个指令定义。
docker镜像制作的工作逻辑
首先需要有一个制作镜像的目录,该目录下有个文件,名称为Dockerfile(名称随意),Dockerfile文件内规则有指定的格式,#号开头为注释,,指令默认用大写字母来表示,以区分指令和参数,docker build读取Dockerfile是按顺序依次Dockerfile里的配置,且第一条非注释指令必须是FROM 开头,表示基于哪个基础镜像来构建新镜像。可以根据已存在的任意镜像来制作新镜像。
Dockerfile语法
#号开头为注释
一般FROM 在第一行 CMD在最后一行
Dockerfile 文件常用指令
1、FROM
用于指定Docker镜像的基础镜像,即用于为镜像文件构建过程指定基准镜像,后续的指令运行于此基准镜像所提供的运行环境
FROM指令是Dockerfile中的必须指令之一,它指定了Docker镜像的起始点,也就是构建新镜像时所使用的基础镜像。
实践中,基准镜像可以是任何可用镜像文件,默认情况下, docker build会在 本地docker上查找指定的镜像文件,在其不存在时,则会从 Docker Hub Registry上拉取所需的镜像文件 如果找不到指定的镜像文件, docker build会返回一个错误信息
FROM 语法
FROM repository
或
FROM repository:tag
repository:指定作为base image的名称
tag: im