Docker的镜像原理和分层理解和打包镜像
镜像的概念理解
Docker 分层原理
就好比一个运行环境,先要 第一层操作系统:windows,然后是第二层 python编译器,然后是第三层python代码. 把这个python代码和他的运行环境打包起来就是一个镜像的概念.
这个镜像就有三层环境,而这种叠层的机制就叫联合文件系统
分层的理解
用inspect命令可以看到镜像里面在layer这里写着每层的哈希值,所以其实docker pull的时候 也是分层下载的
下图的意思是我们下载的一个镜像是只读的,然后使用Docker run运行后,原先的tomcat就属于镜像层,而我们在此基础上的所有操作都是在容器层里进行的.
当我们把自己的操作修改保存后就可以另外打包一个镜像,使用docker commit命令
镜像的打包制作
- 之前已经pull一个tomcat,我们把里面的webapps.dist的所有文件拷贝到webapps里来,然后打包成镜像文件.
- 复制文件过来
- 打包镜像
语法docker commit -m="提交描述信息" -a="作者" 容器id 目标镜像名: [TAG]
例: docker commit -m="copy file from webapps.dist" -a="Young" tomcat02 tomcat03:1.0