一.Docker镜像加载原理
Docker镜像实际上是一种层级文件系统UnionFS。bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux刚启动时会加载bootfs系统,在Docker镜像的最底层是bootfs。当boot加载完成后整个内核就在内存中,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
rootfs(root file system),在bootfs之上,包含对的就是典型Linux系统中的/dev、/proc、/bin、/etc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,CentOS等。
二.Docker镜像commit
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
案例:
1.从Hub上下载tomcat镜像到本地并成功运行
指定端口映射
docker run -it -p 8888:8080 tomcat:8.0.53
随机分配端口
docker run -it -P tomcat
2.故意删除上一步镜像生产tomcat容器的文档
①docker exec -it 容器id /bin/bash
②cd webapps
③rm -rf docs
3.当前tomcat运行实例是一个没有文档内容的容器,以他为模板commit一个没有doc的tomcat新镜像
docker commit -a="zzyy" -m="del tomcat docs" 容器id atguigu/mytomcat:1.2
4.启动新镜像和原来的对比
docker run -it -p 8888:8080 tomcat:8.0.53
docker run -it -p 8889:8080 atguigu/mytomcat:1.2
三、镜像推送到阿里云
docker login --username=xxx registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/命名空间/镜像名称:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/命名空间/镜像名称:[镜像版本号]