Docker镜像讲解

此篇为Docker笔记,文章可能存在疏忽,建议直接观看原视频。
视频地址:https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0
参考:https://blog.csdn.net/11b202/article/details/21389067

Docker镜像讲解

镜像是什么

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容:代码、库、环境变量、配置文件等。

所有应用,直接打包成Docker镜像,就可以直接跑起来。

Docker镜像加载原理
  • UnionFS (联合文件系统)

    UnionFS是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。UnionFSDocker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。(不同 Docker 容器就可以共享一些基础的文件系统层,同时再加上自己独有的改动层,大大提高了存储的效率。)

    特性:一次同时加载多个文件系统,但从外面看来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终文件系统会包含所有底层的文件和目录。

  • 分层原理 (来自 https://blog.csdn.net/11b202/article/details/21389067)

    Docker的文件系统分为两层:bootfsrootfs;

    在这里插入图片描述

    bootfs主要包含boostloaderkernelbootloader主要引导加载kernelLinux刚启动时会加载bootfs,在内核启动之后,bootfs实际上会unmount掉。用户不能对这层做任何修改。

    对于Linux上不同版本的问题,docker可以同时运行多个rootfs

    在这里插入图片描述

    Docker的文件系统是分层的,它的rootfsmount之后会转为只读模式。 Docker在它上面添加一个新的文件系统,来达成它的只读。事实上,从下图中,我们能看到多个只读的文件系统,Docker中把他们称为 层。image是只读的,container部分则是可写的。如果用户想要修改底层只读层上的文件,这个文件就会被先拷贝到上层,修改后驻留在上层,并屏蔽原有的下层文件。

在这里插入图片描述

在这里插入图片描述

commit镜像
# docker commit 提交容器成为一个新的副本
# docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG] 
$ docker commit -a="zhucz" -m="copy webapps.dist to webapps" 739702468c62 tomcat02:1.0
sha256:9a26e1374d18728160cd009f744002aa39788bcb141f2bea4b935f270cd0fbbb
$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
tomcat02     1.0       9a26e1374d18   12 seconds ago   684MB
tomcat       9.0       86783bb5af6c   4 days ago       680MB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值