Docker镜像 详细

本文详细介绍了Docker镜像的概念,包括其作为轻量级软件包的特性,以及通过远程仓库、拷贝和Dockerfile制作镜像的途径。Docker镜像加载基于UnionFS,由多层只读文件系统叠加而成,具有资源分享和高效管理的优势。在容器启动时,会加载一个可写的顶层。文章还演示了如何通过`docker commit`命令提交一个自定义的镜像。
摘要由CSDN通过智能技术生成

Docker 镜像

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

获取镜像途径:

  1. 远程仓库下载
  2. 拷贝
  3. 自己制作 DockerFile

Docker 镜像加载原理

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

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

Docker 镜像加载原理
docker 镜像实际是由一层一层的文件系统组成,这种层级的文件系统为UnionFS

bootfs(boot file system) 主要包含bootloader 和 kernel,bootloader 主要引导加载kernel,Linux 刚启动时会加载 Boofts 文件系统,在Docker 镜像的最底层是bootfs。

rootfs(root file system) 在bootfs之上,包含典形的 Linux 系统中的 /dev,/proc,/bin,/ect等标准目录和文件。rootfs 就是各种不同操作系统发行版,如CentOS,Ubuntu等。

在这里插入图片描述
这里centos只要209M
在这里插入图片描述

对于一个精简OS,rootfs可以很小,只包含最基本的命令、工具和程序库就可以,底层直接用Host的kernel(内核),自己只需提供rootfs 即可。由此可见对于不同Linux发行版,bootfs 基本一致,rootfs 有所差别,因此不同发行版也可以公用bootfs

分层

下载一个镜像时,查看输出日志,一层一层下载

好处:
可以资源共享

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

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

[root@localhost docker]# docker image inspect tomcat:9.0

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

如何提交一个自己的镜像

commit 镜像

docker commit 提交容器作为一个新的副本

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[Tag]

实战:

# 启动 默认tomcat

# 镜像源镜像 webapps 中没有文件,需要拷贝

# 操作过的容器 通过commit 提交为一个镜像, 之后可以使用这个修改过镜像

[root@localhost docker]# docker commit -a="antony" -m="add webapps app" bfb8aae1cd7c tomcat02:1.0

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值