Docker入门学习③----加载原理、分层、Commit镜像

本文介绍了Docker镜像的基础概念,包括镜像是轻量级的软件包,包含了运行软件所需的环境和配置。核心是UnionFS,允许分层叠加并共享基础层,提高存储效率。Docker镜像由bootfs和rootfs组成,rootfs包含标准目录和文件。镜像是只读的,容器启动时会添加可写层。通过commit操作,用户可以保存容器状态生成新的镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker镜像讲解

镜像是什么

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

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

Docker镜像加载原理

UnionFS(联合文件系统)

联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union文件系统时Dcoker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

不同 Docker 容器就可以共享一些基础的文件系统层,同时再加上自己独有的改动层,大大提高了存储的效率。

Docker镜像加载原理

Docker的镜像实际上是由一层一层的文件系统组成的。这种层级的文件系统就是UnionFS。

bootfs主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统会卸载bootfs。

rootfs,在bootfs之上。包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。
在这里插入图片描述

分层理解

分层的镜像

img

Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部。

这一层就是我们通常说的容器层,容器之下的都叫镜像层。

Commit镜像

提交自己的镜像

如果想要保存当前容器的状态,就可以通过commit来提交,获得一个镜像。

# docker commit   提交容器成为一个新的副本
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

测试:

# 启动一个默认的tomcat
# 发现这个默认的tomcat是没有webapps应用的,官方的镜像默认webapps下是没有文件的。
# 因此需要自己进入拷贝。
# 将操作过的容器通过commit提交为一个镜像。以后使用就可以使用修改过后的镜像即可。
docker commit -a="chen" -m="add webapps app" 52982b03da6a tomcat_chen:1.0

docker images

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天意不可违.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值