一文学会Dockerfile语法

接应上篇,续讲前文。今天咱来聊一下Dockerfile的使用 。

 

虽然可以通过docker commit命令来手动创建镜像,但是通过Dockerfile文件,可以帮助我们自动创建镜像,并且能够自定义创建过程。本质上,Dockerfile就是一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像,简化了从头到尾的构建流程并极大地简化了部署工作。

使用Dockerfile的优点:

像编程一样构建镜像,支持分层构建及缓存。

可以快速而精确的重新创建镜像以便于维护和升级。

便于持续集成。

可在任何地方快速构建镜像。

 

一、Dockerfile构建镜像步骤

 

1、创建Dockerfile文件,名字就是Dockerfile

2、docker build Dockerfile所在路径 -t 镜像名称[:tag]

 

二、Dockerfile指令

 

1、FORM

FORM指令是最重要的一个且必须为Dockerfile文件开篇的第一个非注释行,用于为映像文件构建过程指定基准镜像,后续的指令运行于此基准镜像所提供的运行环境。

基准镜像可以是任务可用镜像文件,默认情况下,docker build会在docker主机上查找指定的镜像文件,如果不存在,则会从Docker Hub Registry上拉取所需的镜像文件。

也就是说,任何新建镜像必须基于已有的镜像进行构建。

 

格式:FROM 镜像名称[:tag]

例如:FROM ngxin

 

2、MAINTAINER

用于让Dockerfile制作者提供本人的详细信息,此指令位置不限,但推荐放置FROM之后。

格式:MAINTAINER 作者信息

例如:MAINTAINER "lsy"

 

3、LABLE

为镜像指定标签,会继承基础镜像的LABLE,如果key相同,则覆盖。可替代MAINTANIER使用。

 

格式:LABLE key1=value1 key2=value2

例如:LABLE author=lsy

4、RUN

指定要运行并捕获到新容器镜像中的命令,包括安装文件、创建文件等,在容器创建过程中执行。

 

格式 :RUN 指令1 [&& 指令2]

 

注意:由于Dockerfile中每一个指令都会创建一层,所有层一起构成新的镜像。如果指令过多的话,会变得很臃肿,增加构建时间,所以可以将指令合并执行

例如:RUN mkdir -p /usr/lsy && echo 'this is lsy file' > /usr/lsy/lsy.html

 

例如下面这个Dockerfile文件:

基于nginx创建一个镜像,并创建/usr/lsy目录并创建lsy.html文件

FROM nginx MAINTAINER "lsy" RUN mkdir -p /usr/lsy && echo 'this is lsy file' > /usr/lsy/lsy.html

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfszg.html