[root@kong rootfs]#
创建rootfs.tar
此处注意相对路径,而后续次相对路径会展开至/下,从而创建新的系统的rootfs,这也是从零搭建linux(linux from scratch)的重要操作之一。
[root@kong rootfs]# tar cpf rootfs.tar .
tar: ./rootfs.tar: file is the archive; not dumped
[root@kong rootfs]#简单说明:busybox –list-modules列出了busybox的所有模块,然后以此为基础,创建了一个小型的rootfs
[root@kong rootfs]# busybox –list-modules |wc -l
389
[root@kong rootfs]#
准备Dockerfile
准备一个一行的Dockerfile
[root@kong rootfs]# vi Dockerfile
[root@kong rootfs]# cat Dockerfile
From scratch
[root@kong rootfs]#创建base镜像,由于没有发现具体的内容,所以未创建出具体镜像。另外,本文为了演示方便,直接在此处创建Dockerfile,这并不是一个好主意,实际的时候请不要这样做,如果当前目录下有100G的文件,就会无比缓慢,而且也不规范,无关物品需要清场。
[root@kong rootfs]# docker build -t busyboxbase:latest .
Sending build context to Docker daemon 2.415 MB
Step 1/1 : FROM scratch
--->
No image was generated. Is your Dockerfile empty?
[root@kong rootfs]# docker images |grep busyboxbase
[root@kong rootfs]# from scracth
有From,这个scratch可以pull么,目前的版本已经将其作为一个保留名称
[root@kong rootfs]# docker search scratch |grep 'an explicitly empty'
docker.io docker.io/scratch an explicitly empty image, especially for ... 407 [OK][root@kong rootfs]# docker pull scratch
Using default tag: latest
Error response from daemon: 'scratch' is a reserved name
[root@kong rootfs]#将此Dockerfile添加一行没有实际作用的,看看scratch到底是什么
[root@kong rootfs]# vi Dockerfile
[root@kong rootfs]# cat Dockerfile
From scratch
MAINTAINER LiuMiao <liumiaocn@outlook.com>
[root@kong rootfs]#进行构建,发现产生了一个0字节的镜像文件,也与scratch的原意相通
[root@kong rootfs]# docker build -t busyboxbase:latest .
Sending build context to Docker daemon 2.415 MB
Step 1/2 : FROM scratch
--->
Step 2/2 : MAINTAINER LiuMiao <liumiaocn@outlook.com>
---> Running in b118fd7c73a7
---> 2074dc76c09e
Removing intermediate container b118fd7c73a7
Successfully built 2074dc76c09e
[root@kong rootfs]# docker images |grep busyboxbase
busyboxbase latest 2074dc76c09e 14 seconds ago 0 B










