Docker几个概念

这篇具有很好参考价值的文章主要介绍了Docker几个概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker几个概念,有不正确地方欢迎指正

一、首先来看一句话:没有Cgroups就没有LXC,没有LXC就没有Docker。

1、什么是Cgroup呢?Cgroup又名Control group,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(CPU、 Memory、IO、NET)的机制。

可以看出来,Cgroup是Linux内核里的一个解决方案。其提供的机制非常符合Docker,Docker容器本身也是一种隔离

2、什么是LXC呢?LXC又名Linux Container,是Linux系统上的一个容器技术,是基于内核级的虚拟化技术,可以使Linux操作系统软件服务进程能够相互独立,控制每个服务进程的CPU,内存资源。但这个对于Docker来讲还不够,Docker是在LXC技术上进一步的封装,比LXC技术更完善,并且提供了一系列完整的功能

LXC包含了Cgroups,NameSapce等等,并通过Cgroup进行资源管理

从管理结构体系看,Cgroup在最底层,LXC在Cgroup上封装一层,Docker又在LXC封装一层。

Docker几个概念

 二、什么是AUFS

从上图看出来,Docker包含了LXC和AUFS,那什么是AUFS呢?

AUFS是早期Docker使用的文件系统,Aufs是一种层次结构的文件系统,每当修改时,会拷贝一层为可写层做修改,如果文件大,效果会很低。

下图所示为一个完整的容器文件层级结构

Docker几个概念

1、什么是Bootsfs?

Linux文件系统由Boofts和Rootfs两部分组成

Docker几个概念

Bootfs(boot file system)主要包含 bootloader和kernel。Bootloader主要是引导加载kernel,当kernel被加载到内存中后 bootfs就被umount,Rootfs (root file system) 包含的就是典型 Linux 系统中的/dev,/proc,/bin,/etc等目录和文件。系统引导时,Rootfs是只读的,当系统自检完成后,Rootfs才会变更为可写。

 2、什么是Base Imag和Image

容器镜像文件都是层级堆叠的,可以把每一层看作一起应用服务。

3、根据AUFS系统原理,容器需要写入内容,每层为只读的,为了能够用来写入,在容器最顶层writeable Container写入层。把需要修改的层拷贝到这里来做修改。这种修改机制造成Aufs效果低下。

AUFS因为没有加入到内核,使用上性能又不足,考虑到兼容问题,Docker已经对AUFS放弃了

Docker支持文件系统有很多,如AUFS,Btrfs、Device mapper、OverlayFS,ZFS,VFS等等,目前主流使用的是OverlayFS

三、什么是OverlayFS

OverlayFS是目前使用比较广泛的层次文件系统,是一种类似Aufs的一种堆叠文件系统,于2014年正式合入Linux 3.18主线内核,OverlayFS文件系统,实现简单,而且性能很好,可以充分利用不同或相同Overlay文件系统的Page Cache,具有:上下合并、同名遮盖、写时拷贝等特点。

Docker存储驱动利用了很多OverlayFS特性来构建和管理镜像与容器的磁盘结构。OverlayFs加入内核,在内核模块中的名称也从Overlayfs变为Overlay。但实际使用中,overlayfs代表整个文件系统,overlay表示Docker的存储驱动。

Docker几个概念

 Dpper Dir,上层目录。Lower Dir下层目录,Merged对外提供视图。

Lower Dir层只读,如果需要修改文件,需要把文件从Lower Dir层复制到可写的Upper Dir层。修改完成后,其结果也会被保留到Upper Dir层。

在Docker中 ,只读层为image,可写的层是Container。Docker镜像中的每一层,其实对应的是/varlib/docker/overlay/overlay2中的一个文件夹,文件夹以该层的UUID命名,如下图。

[root@localhost ~]# ls /var/lib/docker/overlay2/
backingFsBlockDev  l
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
f1f26f570256: Pull complete 
7f7f30930c6b: Pull complete 
2836b727df80: Pull complete 
e1eeb0f1c06b: Pull complete 
86b2457cc2b0: Pull complete 
9862f2ee2e8c: Pull complete 
Digest: sha256:dbf632af6963e56f6b3fc4196578b75742482490c236f5009b3e68cf93a62997
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    080ed0ed8312   2 weeks ago   142MB
[root@localhost ~]# ls /var/lib/docker/overlay2/
124de18ac679debed8fad498e3c0ea285e84751b6c98e10afd64b22708856821  14e1318ee77934bcc00eb04177d8d53d11ba4063b055a6c5e48d91fa3468c88f  9b318696a784bdd69e2c47ae2c0cdf1a9d542919b63e0b4d99007351f9e7bc3a  backingFsBlockDev
133c407321616f4451df01043ab6e987400f402ef6d1305df5390df538d5d2d9  45812d55a14f0a4c7410aea41871e35c60262093e4641a117158456c4ab0d21e  abef3738390c7a91ddde9db868b2db4bc6f861d74c7cedbee55b71bc6355518f  l
[root@localhost ~]# 

四、Docker引擎架构

Docker是一个C/S架构,Server常驻进程,Server和Client通过REST API交互,CLI实现容器和镜像的管理,为用户提供统一操作界面。

Docker几个概念

五、Docker镜像,容器,仓库

Docker镜像包含各种软件,每个软件用户服务分层存放于一个镜像中,Docker镜像只读,不能对其进行写操作

Docker几个概念

Docker容器,是Docker镜像的实例。其底层是Docker镜像,基于镜像运行。可以理解为在镜像层添加一个容器层后的实休。

Docker仓库,用于存放管理Docker镜像地方,分来公共仓库和私有仓库。文章来源地址https://www.toymoban.com/news/detail-412010.html

到了这里,关于Docker几个概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker:让应用程序轻松移植到任何地方的利器

    容器是一种轻量级的独立可执行包,可以包括应用程序所需的所有内容(如代码、库、环境变量和系统工具),并在任何地方进行部署。与虚拟机不同,它们不需要完整的操作系统,因此更加轻便、快速和易于移植。 容器技术被广泛应用于云计算、微服务架构和持续集成/持

    2024年02月13日
    浏览(34)
  • DAO概念板块代币大盘点,你又把握了几个?

    你的认知决定你能够走多远! ​​      大家好我是小哲,你的认知决定你能够走多远,元宇宙的火爆已成定局,下面就来聊聊DAO模块。你又认识多少呢?           火爆的dao大家应该都有听到过DAO这个概念,但是可能对于DAO具体是什么还不太了解。说白了,其实DAO很好理

    2023年04月26日
    浏览(41)
  • 图的几个基本概念:连通图、强连通图、完全图等

    1、v,w表示v到w的一条弧,v是弧尾、w是弧头 2、 无向 完全图 :任意两个顶点之间都有边,n个顶点有1/2 *n *(n-1)条边; 3、 有向完全图 :任意两个顶点之间都存在方向相反的两条弧  n个顶点有 n *(n-1) 条边 ; 4、 子图 :假设有两个图G=(V,{E})和g=(v,{e}),如果v⊆V,e⊆E,则称

    2024年02月11日
    浏览(41)
  • 大学生互联网+商业运营常碰到的几个概念问题

    大学生毕竟不是商场老油条,没有经历过多少社会。很多时候大学生的”互联网+“商业模式中一会这个公司一会那个商品,被不少商业人士不屑。但是我们实事求是地讲,有了总比没有强吧。用比较正式的话来说,互联网+”大赛的意义在于建立了促进学生全面发展的重要平

    2024年02月07日
    浏览(29)
  • 计算机视觉之——camera的几个概念-焦距、视场、光圈、快门等

    做了一年的激光点云,现在重拾计算机视觉算法。回头来看,反而对视觉有了更全面的认识。现在,就从最基础的开始,把一些回顾的内容记录下来。也分享出来给大家参考。 (图片来源网上,侵删) (图片来源网上,侵删) 相机成像遵循小孔成像原理。焦距就是从光心到

    2024年02月06日
    浏览(33)
  • 万应低代码CTO胡艳平:赛道的喧嚣,带来的几个概念混淆

    前言: 随着低代码渐火,一方面,资本市场纷纷将眼光投向这个赛道,另一方面,更多企业将低代码视为数字化转型利器。而与低代码居高不下的这种热度相伴而来的,是一场关于低代码的概念之争,有的人认为它是第四代编程语言,有人认为它是开发模式的一种颠覆,也有

    2024年01月20日
    浏览(34)
  • 数仓中的维度、度量、指标、事实、属性几个概念如何区分?有何异同?

    维度是说明数据,是业务中对象的描述性属性或特征,用于对业务过程进行分析归类。 属性是刻画某个实体对象维度的数据形态。 通过事物发展的数量、质量两大方面,从横比、纵比角度进行全方位的比较,我们才能够全面的了解事物发展的好坏。 维度横比纵比 如用户数环

    2024年02月10日
    浏览(38)
  • spring 容器结构/机制debug分析--Spring 学习的核心内容和几个重要概念--IOC 的开发模式--综合解图

    😀前言 本片文章是spring 容器结构/机制debug分析和几个重要概念以及IOC 的开发模式 🏠个人主页:[尘觉主页](https://blog.csdn.net/apple_67445472?type=blog) 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉 在csdn获奖荣誉: 🏆csdn城市之星2名

    2024年02月02日
    浏览(61)
  • docker 生成镜像的几个问题

    首选做准备工作 ① 新建一个空的目录(以jdktemp为例),然后在目录中新建一个文件,命名为Dockerfile ② 拷贝课前资料提供的 jdk8.tar.gz 到这个目录中 ③ 编写Dockerfile文件: a )基于java:8-alpine作为基础镜像 b )将app.jar拷贝到镜像中 c )暴露端口 d )编写入口ENTRYPOINT ④ 使用

    2024年02月09日
    浏览(50)
  • 【Docker】Docker安装Elasticsearch服务的正确方式

    点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情) Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。e

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包