一、Dokcerfile的构建过程

步骤1、从基础镜像运行一个容器
步骤2、执行一条指令,对容器做出修改
步骤3、执行类似docker commit的操作,提交一个新的镜像层
步骤4、再基于刚提交的镜像运行一个新容器
步骤5、执行Dockerfile中的下一条指令,直至所有指令执行完毕

二、构建镜像的中间层调试

可以运行Dockerfile中间层镜像来创建一个容器进行调试,主要用于排查Dockerfile是否出错。

三、Dockerfile镜像缓存

Dockerfile构建命令如下:
语法:docker build [OPTIONS] PATH | URL | -
参数说明:
OPTIONS说明:
--build-arg=[] :设置镜像创建时的变量;
--cpu-shares :设置 cpu 使用权重;
--cpu-period :限制 CPU CFS周期;
--cpu-quota :限制 CPU CFS配额;
--cpuset-cpus :指定使用的CPU id;
--cpuset-mems :指定使用的内存 id;
--disable-content-trust :忽略校验,默认开启;
-f :指定要使用的Dockerfile路径;
--force-rm :设置镜像过程中删除中间容器;
--isolation :使用容器隔离技术;
--label=[] :设置镜像使用的元数据;
-m :设置内存最大值;
--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
--no-cache :创建镜像的过程不使用缓存;
--pull :尝试去更新镜像的新版本;
--quiet, -q :安静模式,成功后只输出镜像 ID;
--rm :设置镜像成功后删除中间容器;
--shm-size :设置/dev/shm的大小,默认值是64M;
--ulimit :Ulimit配置。
--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
--network: 默认 default。在构建期间设置RUN指令的网络模式
示例:
1.使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1。
docker build -t runoob/ubuntu:v1 . 
2.使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像。
docker build github.com/creack/docker-firefox
3.也可以通过 -f Dockerfile 文件的位置:
$ docker build -f /path/to/a/Dockerfile .

使用docker build命令构建Dockerfile有中间镜像缓存。
在构建Dockerfile不使用缓存有下面两种方式:
1.在使用docker build构建Dockerfile是添加–no-cache选项;
2.修改Dockerfile中ENV REFRESH_DATE来刷新缓存

四、查看镜像的构建过程

查看镜像构建过程命令如下:

语法:docker history [OPTIONS] IMAGE
参数说明:
OPTIONS说明:
-H :以可读的格式打印镜像大小和日期,默认为true;
--no-trunc :显示完整的提交记录;
-q :仅列出提交记录ID。
示例:
查看本地镜像runoob/ubuntu:v3的创建历史。
root@runoob:~# docker history runoob/ubuntu:v3