一、镜像的分层结构
1.镜像
1.镜像共享宿主机的kernel内核
使用 docker run -it busybox
进入镜像构建容器的终端,uname -a
查看内核与宿主机内核相同
[root@k8s2 ~]# docker run -it busybox
/ # ls
bin dev etc home proc root sys tmp usr var
/ # uname
Linux
/ # uname -a
Linux 7366ce1a8fa2 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 GNU/Linux
/ # exit
[root@k8s2 ~]# uname
Linux
[root@k8s2 ~]# uname -a
Linux k8s2 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
2.base镜像提供的是最小的Linux发行版
3.同一docker主机支持运行多种Linux发行版
4.采用分层结构的最大好处是:共享资源
5. docker从上往下依次查找文件,一个镜像最多127
2.Copy-on-Write 可写容器层
可写容器是指可以在容器内操作,(但是退出后,容器被回收),容器层以下所有镜像层都是只读的,封装容器为新的镜像时,容器层保存镜像变化的部分,并不会对镜像本身进行任何修改
[root@k8s2 ~]# docker run -it busybox
/ # ls
bin dev etc home proc root sys tmp usr var
/ # cd home/
/home # ls
/home # touch file1
/home # touch file2
/home # ls
file1 file2
/home # exit
[root@k8s2 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
二、镜像的构建
使用docker run -it --rm busybox
运行镜像,-it会进入到容器终端,–rm运行结束后自动删除
Ctrl+ p+ q:将运行镜像打入后台
Ctrl+ d:结束运行
运行后,我们可以看到生成了一个容器,ID为d0911da8a366,名字自动生成为 recursing_blackw