镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
1.UnionFS(联合文件系统)
2.Docker镜像加载原理
3.分层的镜像
4.为什么使用分层结构
最大的一个好处就是 - 共享资源
比如:有多个镜像都从相同的 base 镜像构建而来,那么宿主机只需在磁盘上保存一份base镜像,同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。
5.Docker镜像特点
Docker镜像都是只读的当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。
6.docker commit
语法:docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
docker commit提交容器副本使之成为一个新的镜像。
[1].运行tomcat
从Hub上下载tomcat镜像到本地并成功运行.因为我下载的是centos6.8,所以为了兼容性我下载tomcat7.0
[root@pluto ~]# docker pull tomcat:7.0.70-jre7 [root@pluto ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE nginx latest 9fcafc113f95 3 days ago 132.6 MB centos latest 375e2d4d2a24 7 days ago 215.1 MB hello-world latest fd74c3615f76 7 months ago 13.34 kB centos 6.8 efa3cf7ee1f9 17 months ago 194.5 MB tomcat 7.0.70-jre7 dca86ad0bb53 3 years ago 357.8 MB [root@pluto ~]# docker run -it -p 8888:8080 dca86ad0bb53 [root@pluto ~]# docker run -it -P dca86ad0bb53 |
[2].删除tomcat文档
故意删除上一步镜像生产tomcat容器的文档
[root@pluto apache-tomcat-7.0.70]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f03c4ec4827d dca86ad0bb53 "catalina.sh run" 5 minutes ago Up 5 minutes 0.0.0.0:32768->8080/tcp grave_torvalds 17c2ee9ceeb5 centos:6.8 "/bin/bash" 44 minutes ago Up 44 minutes high_banach [root@pluto apache-tomcat-7.0.70]# docker exec -it f03c4ec4827d /bin/bash
root@f03c4ec4827d:/usr/local/tomcat/webapps# pwd /usr/local/tomcat/webapps root@f03c4ec4827d:/usr/local/tomcat/webapps# rm -rf docs |
[3].创建新镜像
即当前的tomcat运行实例是一个没有文档内容的容器,以它为模板commit一个没有doc的tomcat新镜像atguigu/tomcat02
[root@pluto ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE tomcat 7.0.70-jre7 dca86ad0bb53 3 years ago 357.8 MB
[root@pluto ~]# docker commit -a "pluto" -m="tomcat remove docs" f03c4ec4827d pluto/tomcat:7.0.70-pluto f77d4ea48ed4da175e94b18b2e7b6f92bf9dc5afbd3b528ffd5d8858f032202f
[root@pluto ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE pluto/tomcat 7.0.70-pluto f77d4ea48ed4 9 seconds ago 357.9 MB tomcat 7.0.70-jre7 dca86ad0bb53 3 years ago 357.8 MB
[root@pluto ~]# docker run -it -p 8888:8080 pluto/tomcat:7.0.70-pluto |
[4].对比