? ? ? ? 镜像是一种轻量级、可自行的独立软件包,用来打包软件运行环境和基于运行环境快发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
? ? ? ? 是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Union文件系统是Docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录
? ? ? ? docker镜像实际上由一层层的文件系统组成,这种层级的文件系统UnionFS。
? ? ? ? bootfs主要包含bootloader和kernel,BootLoader主要是引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs,这一层与典型的linux/unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
? ? ? ??rootfs,在bootfs之上,包含的就是典型的Linux系统中的/dev、/proc、/bin、/etc等标准目录和文件。rootfs就是各种不同操作系统发行版,比如Ubuntu,Centos等等。
docker commit提交容器副本使之成为一个新的镜像
语法:
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建目标镜像名:[标签名]
案例演示:
1)从Hub上下载Tomcat镜像到本地并成功运行
docker pull tomcat
以交互方式运行
### 以交互式的方式启动Tomcat,本机端口8888映射Tomcat端口8080
docker run -it -p 8888:8080 tomcat
注意;这里的参数是小写的p,表示指定端口,如果改成大P,就表示随机端口
如图:
访问:
1)先关闭防火墙
service firewalld stop
2)进入Tomcat容器
docker exec -it 0820a84543da /bin/bash
3)查看目录
ls -l
4)查看webapps目录,发现其是空的,在查看webapps.dist发现其有内容
因此,将webapps目录删除,将webapps.dist改成webapps
再次访问,成功的访问到了Tomcat
2)故意删除上一步的镜像生产Tomcat容器的文档
2.1 进入Tomcat容器
docker exec -it bd98b373d138 /bin/bash
2)进入webapps目录,删除doc文件夹
3)再次访问Tomcat的doc,报错,如图:
3)以删除了docs目录的Tomcat为模板,commit一个没有doc的Tomcat新镜像tomcat02
docker commit -a="zoudm" -m="del tomcat docs" bd98b373d138 bjc/tomcat02:1.2
执行结果如图:
最后查询镜像,发现镜像列表存在刚才提交的镜像,如图:
4)启动新镜像并和原来的对比
docker run -it -p 9999:8080 bjc/tomcat02:1.2
访问新容器的Tomcat,可以访问,但是,访问其docs报错,如图:
上周同事小姐姐问我:哈哥你看,我发现MySQL有bug,我下午为了清理磁盘,明明删...
2 月 2 日消息 据 Wine 官方博客,Wine 6.1 版本已正式发布。本次带来了针对 VKD...
本文实例为大家分享了JSP使用commons-fileupload实现文件上传代码,供大家参考,...
一、新手常犯的错误 在论坛看到很多帖子代码中都有一个共同的基本错误,字段类型...
12月20日消息 Windows 10X 是微软推出的一款适用于双屏设备的操作系统,也适用于...
购买自己的服务器 这里我选择的是阿里云服务器进入 阿里云官网 https://www.aliy...
OpenFileDialog类提供了用户打开文件的功能,它有如下属性: 属性 InitialDirect...
InnoDB采用按表空间(tablespace)的方式进行存储数据,默认配置情况下会有一个初...
今天给大家分享的是利用jquery实现轮播图的效果,废话不多说咯,直接上代码,当...
本文实例讲述了PHP使用PDO 连接与连接管理操作。分享给大家供大家参考,具体如下...