docker镜像

my-program-life my-program-life     2023-04-24     620

关键词:

一、底层原理

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

 1、UnionFS(联合文件系统)

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

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

 2、Docker镜像加载原理

Docker镜像加载原理:

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

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

                                                                              技术图片

思考:平时我们安装进虚拟机的CentOS都是好几个G,为什么docker这里才200M?

技术图片

 对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了,因为底层直接用Host的kernel,自己只需要提供 rootfs 就行了。由此可见对于不同的linux发行版, bootfs基本是一致的, rootfs会有差别, 因此不同的发行版可以公用bootfs。

 3、分层的镜像

以我们的pull为例,在下载的过程中我们可以看到docker的镜像好像是在一层一层的在下载

技术图片

 4、为什么 Docker 镜像要采用这种分层结构呢?

最大的一个好处就是 - 共享资源

比如:有多个镜像都从相同的 base 镜像构建而来,那么宿主机只需在磁盘上保存一份base镜像,
同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。

二、特点

Docker镜像都是只读的。
当容器启动时,一个新的可写层被加载到镜像的顶部。
这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。

 

docker镜像overview

Docker镜像overview文章目录​​Docker镜像overview​​​​1.什么是Docker镜像?​​​​2.Docker镜像demo​​​​3.Docker容器与Docker镜像​​​​4.Docker镜像剖析​​1.什么是Docker镜像?​​Docker​​​镜像是用于在Docker​​容器​​中执... 查看详情

docker镜像及docker仓库配置[四]

Docker镜像及Docker仓库配置[四]Docker镜像及Docker仓库配置[四]Docker时间:2016年11月8日15:45:20一、Docker镜像介绍Docker镜像构建分为两种,一种是手动构建,另一种是Dockerfile(自动构建)Docker镜像手动构建案例:我们基于centos镜像进行构... 查看详情

docker镜像管理基础(代码片段)

docker镜像管理基础文章目录docker镜像管理基础镜像的概念docker镜像层docker存储驱动AUFSOverlayFSDeviceMapperdockerregistrydocker镜像的制作DockerHubdocker镜像的获取镜像的生成基于容器制作镜像镜像的概念镜像可以理解为应用程序的集装箱&#x... 查看详情

docker镜像管理基础(代码片段)

docker镜像管理基础文章目录docker镜像管理基础镜像的概念docker镜像层docker存储驱动AUFSOverlayFSDeviceMapperdockerregistrydocker镜像的制作DockerHubdocker镜像的获取镜像的生成基于容器制作镜像镜像的概念镜像可以理解为应用程序的集装箱&#x... 查看详情

docker------docker基本管理(镜像,容器,网络,资源控制)(代码片段)

目录一.Docker概述1.Docker概述2.容器的优点3.Docker与虚拟机的区别4.Docker核心概念二.安装Docker三.Docker镜像操作1.搜索镜像2.获取镜像3.镜像下载加速4.查看镜像信息5.查看本地镜像6.获取镜像详细信息7.为本地镜像添加新标签8.删除镜像... 查看详情

docker------docker基本管理(代码片段)

目录一.Docker概述1.Docker概述2.容器的优点3.Docker与虚拟机的区别4.Docker核心概念二.安装Docker三.Docker镜像操作1.搜索镜像2.获取镜像3.镜像下载加速4.查看镜像信息5.查看本地镜像6.获取镜像详细信息7.为本地镜像添加新标签8.删除镜像... 查看详情

docker学习docker镜像操作(代码片段)

上一篇:docker学习(一)在centos7上安装docker列出所有docker镜像dockerimages拉取镜像dockerpull镜像名我这里一Tomact为例首先在DockerHub上查找tomcat镜像搜索tomcat选择收藏和拉取最多的那个,一般就是第一个,然后点击进去通过命令进行... 查看详情

docker第四天:制作docker镜像——手工制作docker镜像

制作Docker镜像的方式一般有两种:手工制作和通过Dockerfile制作,此次讲解的是手工制作docker镜像。一、手动制作镜像:用centos镜像启动容器:[[email protected]_0_12_centos ~]# docker run -it centos bash  2.在... 查看详情

docker第三天:制作docker镜像——手工制作docker镜像

制作Docker镜像的方式一般有两种:手工制作和通过Dockerfile制作,此次讲解的是手工制作docker镜像。一、手动制作镜像:用centos镜像启动容器:[[email protected]_0_12_centos ~]# docker run -it centos bash  2.在... 查看详情

docker镜像

镜像是Docker的三大核心概念之一。Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认镜像仓库下载,用户也可以通过配置,使用自定义的镜像仓库。1、获取镜像镜像是Docker运行容器的前提。... 查看详情

docker镜像原理学习理解(代码片段)

Docker镜像原理学习理解一、Docker镜像的组成1.Docker镜像图层2.unionfilesystem3.镜像层-bootfs4.镜像层-rootfs5.镜像层-依赖环境6.容器层二、docker镜像小结三、进入容器空间四、定义容器镜像五、容器层介绍一、Docker镜像的组成1.Docker镜像... 查看详情

云原生之docker实战使用dockerfile构建docker镜像(代码片段)

【云原生之Docker学习】使用Dockerfile构建docker镜像一、Docker镜像的分层架构1.镜像的分层示意图2.镜像的组成①.unionfilesystem②.镜像层——bootfs③.镜像层——rootfs④.镜像层——依赖环境⑤.容器层3.镜像的分层图示二、镜像与容器的... 查看详情

docker基本管理(镜像容器)(代码片段)

目录一、Docker概述1、容器化2、Docker与虚拟机的区别3、Docker核心概念4、Linux文件系统和Docker文件系统的区别二、安装Docker三、Docker镜像操作1、搜索镜像2、获取镜像3、镜像加速下载4、查看镜像信息5、查看下载的镜像文件信息6、... 查看详情

docker镜像-运行

一、docker镜像 镜像是Docker的三大组件之一。Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会从镜像仓库下载(默认是DockerHub公共注册服务器中的仓库)。1、获取镜像 DockerHub上有大量的高质量的... 查看详情

docker基础:镜像(代码片段)

...像删除镜像创建镜像导出和导入镜像上传镜像总结镜像是Docker的三大核心概念之一。Docker运行容器前需要本地存在对应的镜像,如果本地没有对应的镜像,Docker会尝试从默认的镜像仓库下载。当然用户也可以通过配置,使用自定... 查看详情

docker镜像

Docker镜像就是一个只读的模板。例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或用户需要的其它应用程序。镜像可以用来创建Docker容器。Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像... 查看详情

创建属于自己的docker镜像

 docker镜像是容器的基础,当每次执行dockerrun时就是在对docker说现在我需要哪个镜像。如果在你的docker主机上没有这个镜像,docker会自动从一个registry上下载这个镜像(默认为dockerhub) 在这一节,我们将会探讨更多的关于d... 查看详情

docker大行其道—镜像

导读作为Docker三大核心概念之一,Docker镜像(DockerImage)是一个面向Docker引擎的只读模板,包含文件系统。实际上每个Docker镜像包含一个独立的运行环境,如一个镜像包含centos操作系统环境,我们称之为一个centos镜像。Docker运... 查看详情