经过了前面几期的编写,那我们已经知道了容器由镜像创建,而镜像可以通过命令行创建。最常见的办法呢,就是从公共镜像库中拉取一个基础镜像,生成一个基础镜像后,一点点加其他应用。这种方法是可行的,但是又非常大的限制。因为在我们生产环境中,不可能只有一台服务器,基本上都是几十上百台服务器,我们想要全员Docker化的化,那么镜像难道考一个服务器内打包,然后分别传送到目标服务器?
要是解决不了这种场景,那还要Docker有什么用!Dockerfile一键解决所有问题,可以随心所欲的创建自己的镜像。那么Dockerfile是什么?
一、Dockerfile
Dockerfile由两部分构成,注释和命令+参数 ,具体的命令解释可以查看官方文档。 它从内容上来说就是一个包含用于组合映像的命令的文本文档 , Docker通过读取Dockerfile中的指令自动生成映像,超级easy ~
docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile
docker build -f /Dockerfile
二、 Dockerfile的基本结构
Dockerfile的内容基本上都是四个部分组成,基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 Docker以从上到下的顺序运行Dockerfile的指令 。需要注意的是,我们为了指定基本映像,第一条指令必须是FORM,否则执行失败。
三、Dockerfile实例
想了想,博主觉得也没有必要再去把Dockerfile的内容参数一个一个搂出来,然后再细细说这是啥,那是啥。网上成千上百的文档,太多了。直接抛出一个实例,实践最能出真知!
# 获取基础镜像FROM 基础镜像# 作者信息MAINTAINER 作者# 指定了临时文件目录为/tmpVOLUME /tmp# 指定编码ENV LANG en_US.UTF-8ENV LANGUAGE en_US:enENV LC_ALL en_US.UTF-8ARG LOCAL_IP_ADDRRUN echo "当前环境IP地址:$LOCAL_IP_ADDR"# 设置环境变量ENV JAVA_OPTS="\# runRUN XXXXXX# 开启服务端口EXPOSE 8080
