一、docker的可视化
就是docker的图形化管理工具,用portainer来入门操作,一般不会使用portainer,所以笔记就没写怎么下载,具体图片:
可以看见基本的docker配置和属性
二、docker的镜像原理解析
1、镜像加载
docker镜像采用层层叠加的方式加载,但采用的仍是宿主机的内核,所以只需要容器内命令和环境就可以运行了,这也是docker启动容器快速的原因
Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交,来一层层的叠加。主要分为2个部分:
bootfs(boot file system):主要包含bootloader和kernel(Linux内核),bootloader主要是引导加载kernel
rootfs(root file system):rootfs在bootfs之上。也就是bootfs的上层,对于一个精简的OS系统,rootfs可以很小,只需要包含最基本的命令、工具和程序库就可以了
2、分层的解析
下载redis是层层下载的,
所有的Docker镜像都起始于一个基础镜像层,当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层。在添加额外的镜像时,镜像会在当前的形式下添加。
这种情况下,上层镜像层中的文件覆盖了底层镜像层中的文件。这样就使得文件的更新版本作为一个新镜像层添加到镜像当中。
Docker通过存储引擎(新版本采用快照机制)的方式来实现镜像层堆栈,并保证多镜像层对外展示为统一的文件系统。
上边的三层镜像,Docker最终会把所有镜像层堆叠并合并,对外提供统一的视图
我们所有的操作都基于容器层,容器层又是基于镜像层之上,镜像层是不能改变的,想要发送自己的镜像就得镜像层和容器层一起打包发送
三、提交自己的镜像 commit命令
docker commit 提交容器成为一个新的副本
-m:"提交的描述信息" -a:作者
docker commit -m: -a: 容器id 目标镜像名:[tag]
先将tomcat启动起来:docker run -it -p 8080:8080 tomcat
实测:
启动之后进入容器操作: docker exec -it d335023df077 /bin/bash 进入容器
webapps为空 进入之后实行将webapps.dist文件复制给webapps:cp -r webapps.dist/* webapps 复制目录
修改之后以后就想用这个镜像,不想用官方的,用官方的每次都要复制目录,所以要提交镜像,之后直接使用这个镜像就可以了
docker commit -a="dsxdsx" -m="add webapps" d335023df077 dsxtomcat 提交镜像
提交之后可以直接使用,可以直接使用docker images查看
根据作业加深印象:在镜像层和容器层合并成了一个新的镜像层,这个镜像层之后使用时又可以增加新的容器层,所以就可以层层叠加.....