docker最小的镜像——hello-world
下载镜像 docker pull
docker pull hello-world
查看镜像 docker images
docker images hello-world
运行镜像 docker run
docker基础镜像:自我感觉基础镜像Linux各种版本没有做过任何操作过的镜像
以centos为例
下载centos的镜像:docker pull centos
注:Linux的操作系统是由内核空间kernel和用户空间组成的;
内核空间:kernel,linux启动的时候会加载bootfs文件系统,之后bootfs会被卸载掉;
用户空间的文件系统是rootfs,包括/dev/,/proc,/bin等目录
对于docker的基础镜像来说,底层用的是Host的内核空间kernel,docker只需要提供rootfs。
note:不同的linux发行版的主要区别是rootfs不同
important note:基础(base)镜像只是在用户空间与发行版一致,内核空间kernel不一定一致,容器的内核版本与底层Host保持一致,容器只能使用Host的内核版本,不能修改
启动并进入centos容器:docker run -it centos
镜像分层:
docker镜像都是通过在基础镜像上增加新的软件服务和配置一层一层构建出来的;这样可以资源共享
可写的容器层(copy-on-write):当容器启动时,新的可写层处于镜像顶部,这一层被称作“容器层”,容器层之下的都叫镜像层。所有对容器的改动--无论是添加,删除,还是修改文 件,都只会发生在容器层
镜像层数量可能会很多,所有的镜像层联合在一起组成一个统一的文件系统
1.添加文件:在容器中添加文件时,新文件会被添加到容器层中
2.读取文件:在容器中读取文件时,会依次从上往下在镜像层中查找,一旦找到,打开并读入内存
3.修改文件:在容器中修改已经存在的文件时,Docker会依次从上往下查找文件,一旦找到,先将其复制到容器层,再进行修改
4.删除文件:在容器中删除文件时,Docker会依次从上层往下层找文件,一旦找到,先在容器层记录删除的操作,然后进行删除。
只有在修改的时候才会复制一份数据,这种特性被称作COPY-on-write
image镜像层的内容始终不会改变,是只读的。所有的增删改都是在容器的自己的空间进行的。