1、DockerFile简介docker
一、简介shell
什么是docker file
ide
docker file仅仅就是一些文本指令而已ui
将这些指令保存成一个文本文件spa
而后经过在命令行中调用这些文本文件完成建立docker镜像命令行
docker file的组成结构blog
# 表示注释信息it
指令 参数class
一行一个指令,指令一般写成大写,可是其实大小写不敏感容器
docker file中的第一个非注释行必须是FROM(这是用来指定基础镜像,由于咱们知道制做镜像都是基于一个基础镜像来作的。)
docker file中的内容是从上向下依次执行
docker file使用要求
第一个要求:就是,第一要有工做目录,目录中要有docker file文件,首字母要大写,以下
第二个要求:必须将须要用到的相关文件都放在这个目录或者子目录中,好比咱们要在容器中安装rpm包和配置文件,都必须放在这里
在制做镜像的时候,若是是将一个子目录作入的镜像中,那么子目录下的所有文件都会作入镜像。
有个特殊状况,如子目录中的有些文件咱们并不想作入到镜像中,那么此时就能够将这些文件排除掉
工做目录下,还应该有个隐藏文件:dockeringore
这个文件就能够实现将指定的文件不要作入到镜像中
方法就是将须要忽略的文件的路径一行一个的写入到这个隐藏文件中
当工做目录准备好一会,就能够制做镜像了
能够经过执行命令docker build经过读取这个docker file文件来制做镜像
而后将这个作好的镜像打个标签,而后推到仓库中,而后就能够用了
在用docker build制做镜像的时候,其实也会悄悄地启动一个容器,而后在这个容器中执行安装配置操做,而后将安装好的结果作成一个镜像
在制做镜像的时候,是能够执行一些shell命令的,可是须要注意,这些命令并不必定有,就要看底层的基础镜像中是否有这个命令。
在docker file中也是支持使用变量的
定义变量:var=value
引用变量:$var 或者 ${var}
也支持变量的一些高级用法
${var:-value} 若是变量没有定义或者变量值为空,那么就输出后面的值
${var:+value} 若是变量已经有值了,就将value赋值给变量