Dockerfile目录
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/05d74a5b1a9405629b3fa66a2873a38e.png)
Dockerfile简介
存在于一个目录下的普通文件,文件名一般为Dockerfile
Dockerfile中的每个指令都会创建一层镜像,执行完后删除
结构较为简洁,维护起来简单
分享也较为简便,直接分享目录就行
每一个指令会构建一层,会生成一个新的镜像,层数越多自定义的镜像越大
不超过127层
构建语法
docker bulid -t 仓库名/镜像名:tag .
#切记命令结尾的点
,意为当前目录
Dockerfile指令详解
FROM
FROM 镜像名称
- 以一个镜像为基础镜像来结合其他命令,构建一个新的镜像。
- 也可以是表示空镜像的
scratch
- 因为容器本神就是和宿主机共享内核,所以可以将二进制文件直接复制到镜像中执行。
[root@docker workdir]# cat Dockerfile
FROM centos
...
LABEL
用于对镜像进行描述
[root@docker ~]# docker inspect centos:7 #查看LABLE标签
镜像名:TAG
"Labels": {
"org.label-schema.build-date": "20201113",
"org.label-schema.license": "GPLv2",
"org.label-schema.name": "CentOS Base Image",
"org.label-schema.schema-version": "1.0",
"org.label-schema.vendor": "CentOS",
"org.opencontainers.image.created": "2020-11-13 00:00:00+00:00",
"org.opencontainers.image.licenses": "GPL-2.0-only",
"org.opencontainers.image.title": "CentOS Base Image",
"org.opencontainers.image.vendor": "CentOS"
}
#查看其中的 Labels 字段
ENV
设置环境变量
格式:ENV <key1>=<value1> <key2>=<value2>...
ENV VERSION=haha \
NAME="Happy Feet"