概念
Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
DockerFile文件内容
1:每条保留字指令都必须为大写字母且后面要跟随至少一个参数 2:指令按照从上到下,顺序执行 3:#表示注释 4:每条指令都会创建一个新的镜像层,并对镜像进行提交
docker build 流程
(1)docker从基础镜像运行一个容器 (2)执行一条指令并对容器作出修改 执行类似dockercommit的操作提交一个新的镜像层 docker再基于刚提交的镜像运行一个新容器 kerfile中的下一条指令直到所有指令都执行完成
上下文路径
上一节中,有提到指令最后一个 . 是上下文路径,那么什么是上下文路径呢?
$ docker build -t nginx:test .
上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。
如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。
注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。
更多指令
https://www.runoob.com/docker/docker-dockerfile.html