返回顶部
首页 > 资讯 > 精选 >Docker的基础理论与关键点是怎么样的
  • 113
分享到

Docker的基础理论与关键点是怎么样的

2023-06-19 10:06:44 113人浏览 薄情痞子
摘要

Docker的基础理论与关键点是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一般来说,虚拟化既可以通过硬件模拟来实现,例如 Vmware、KVM等,主要是通过虚拟硬件

Docker的基础理论与关键点是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一般来说,虚拟化既可以通过硬件模拟来实现,例如 Vmware、KVM等,主要是通过虚拟硬件的方式,重新创建一个操作系统,操作系统本身并不知道当前的硬件是否真的存在,这种形式又称为操作系统级虚拟化。

而现在以Docker为代表的容积技术,为虚拟化技术提供了创新和突破。

 1、什么是Docker?

         Docker 是使用容器技术实现应用虚拟化的一个开源项目

          它与传统的虚拟机技术有本质的区别,虚拟机技术虚拟出来的单个虚拟机可以部署各种应用,本质来说就是多了一台可迁移的操作系统;而Docker是一个轻量级容器,主要是针对应用进行定制,一个Docker容器封装一个应用,提供了这个应用运行的环境,所以被称为“应用的集装箱”,这样细粒度更高。

2、为什么要使用Docker?

        Docker是基于操作系统的软件,他利用了操作系统已有的特性,可以实现远超传统虚拟机的轻量级虚拟化,主要有如下几点:

        1、更快的交付和部署,开发人员可以通过镜像快速构建开发环境,测试人员可以通过完全相同的环境来进行测试,通过Docker部署也会变的简单高效。

        2、更高效的资源利用,Docker本身对资源的消耗极低,这方面的性能传统虚拟机是无法比拟的,这样一台服务器可以构建更多的Docker应用。

        3、更轻松的扩展和迁移,Docker几乎可以在任何平台上运行。

        4、更简单的更新管理,通过Dockerfile,可以通过简单的修改可以实现以往大量的更新工作。

3、Docker的核心概念

        使用Docker所有的时间基本都是在处理它的三大核心要素:镜像、容器、仓库。

        镜像 是一个只读模版,是对容器的定义,就像Java 中 的类一样,通过类可以创建实例,实例就是容器,容器则是我们真正运行起来提供服务的应用,通过提交容器可以形成新的镜像,迁移镜像又可以在其他服务器生成容器。

        仓库是指存放镜像的地方,目前Docker的仓库(Docker Hub)中存放了非常多的基础镜像文件,我们可以直接下载作为应用的基础模版。

        当然我们也可以搭建我们的私人仓库,在内部网络内共享我们的镜像。

4、Docker 核心技术实现

        Docker 是诞生于 linux的一种容器化虚拟化技术,深度运用了Linux操作系统的多向底层支持技术,通过这些技术来实现 Docker 的容器级虚拟化。

1、使用Namespace实现资源隔离

        命名空间(Namespace)是Linux内核的一个强大特性,利用这一特性每个容器都拥有自己独立的命名空间,运行在其中的应用就像在独立的操作系统环境中一样,容器之间资源独立、互不影响。

        这种资源隔离特性隔离了主机名与域名、进程编号、内存、网络设备、文件系统、用户和用户组,虽然所有的容器都通过操作系统共享了主机的硬件资源,但是通过Namespace实现了基于操作系统级别的资源隔离,这种形式效率很高。

2、使用 Control Group 实现资源限制

        控制组(Control Group)也是Linux内核的一个特性、主要对共享资源进行隔离、限制。Docker通过控制分配到容器的资源,实现了避免多个容器同事运行是对宿主机系统的资源竞争。

        控制组主要提供了如下功能:

  • 资源限制,可以将组设置为不超过设定的内存限制。

  • 优先级,设置优先级可以让一些组优先得到更多的CPU资源。

  • 资源审计,对每个组分配的资源进行统计。

  • 隔离,是一个组不能看到另一个组的资源(包括进程,网络连接和文件系统)。

  • 控制,控制挂起,重新启动等操作。

3、使用联合文件系统使镜像管理变得快速和轻量级

       联合文件系统是Linux一种高性能分层文件系统,目前有多种实现技术方案,它具有两个基本特性:

  • 每一次修改作为一次提交,并层层叠加

  • 将不同的目录挂在到同一个虚拟文件系统下

       联合文件系统是Docker实现的基础技术,Docker镜像可以通过分层来继承,例如 用户基于基础镜像制作各种不同的应用镜像,这些镜像通用了一个基础镜像,这些应用只用记录这些分层信息,从而大大提升了存储效率。

       我们可以通过 docker history 命令查看一个镜像的分层组成。

       将不同的目录挂在到同一个虚拟文件系统下,这样就实现了外置数据卷的挂载。

       对于Docker镜像来说构成镜像的这些层是不可修改的,只读的,当Docker利用镜像启动一个容器时,将在镜像文件系统的最顶端挂载一个新的可读写层给容器,容器中内容的更新会发生在可读写层。当所操作的对象位于较深的层时,需要先复制到最上面的可读写层,当数据对象较大时,io性能会较差,所以一般通过数据卷挂载的方式,而不是直接修改镜像内的数据就是这个原因。

看完上述内容,你们掌握Docker的基础理论与关键点是怎么样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Docker的基础理论与关键点是怎么样的

本文链接: https://lsjlt.com/news/295340.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Docker的基础理论与关键点是怎么样的
    Docker的基础理论与关键点是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一般来说,虚拟化既可以通过硬件模拟来实现,例如 Vmware、KVM等,主要是通过虚拟硬件...
    99+
    2023-06-19
  • 神经网络理论基础及Python实现是怎么样的
    本篇文章给大家分享的是有关神经网络理论基础及Python实现是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、多层前向神经网络多层前向神经网络由三部分组成:输出层、隐...
    99+
    2023-06-17
  • 数据库相关基础是怎么样的
    数据库相关基础是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 数据库相关基础  0.1数据库基础 ...
    99+
    2024-04-02
  • java基础理论Stream的Filter与谓词逻辑
    一、基础代码准备 建立一个实体类,该实体类有五个属性。下面的代码使用了lombok的注解Data、AllArgsConstructor,这样我们就不用写get、set方法和全参构造...
    99+
    2024-04-02
  • Python基础中的魔法方法与异常处理是怎样的
    这期内容当中小编将会给大家带来有关Python基础中的魔法方法与异常处理是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一.魔法方法1.属性访问通常可以通过点(.)操作符的形式去访问对象的属性。cl...
    99+
    2023-06-25
  • java理论基础Stream元素的匹配与查找
    目录一、对比一下有多简单二、其他匹配规则函数介绍三、元素查找与Optional 在我们对数组或者集合类进行操作的时候,经常会遇到这样的需求,比如: 是否包含某一个“匹配规...
    99+
    2024-04-02
  • JavaScript基础语法是怎样的
    本篇文章为大家展示了JavaScript基础语法是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JavaScript发展历史(J...
    99+
    2024-04-02
  • python基础的总结是怎样的
    这篇文章将为大家详细讲解有关python基础的总结是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的设计目标之一是让代码具备高度的可阅读性...
    99+
    2024-04-02
  • Linux内核进程管理的基础是怎样的
    本篇文章为大家展示了Linux内核进程管理的基础是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。内核通过 task_struct 描述进程用命令 pstree 可以让内核以树形的结构把进程之间...
    99+
    2023-06-15
  • Docker网络基础中Linux网桥工作原理以及是怎样实现的
    Docker网络基础中Linux网桥工作原理以及是怎样实现的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。本文转载自微信公众号「Linux内核那些事」,作者songsong00...
    99+
    2023-06-15
  • 关于ROS2安装与docker环境使用是怎样的
    本篇文章为大家展示了关于ROS2安装与docker环境使用是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。为什么要用dockerdocker是一个容器,可以用他来装载镜像。我可以把我的基础环境...
    99+
    2023-06-21
  • k8s与Docker的关系是什么
    这期内容当中小编将会给大家带来有关k8s与Docker的关系是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、从虚拟化角度:图1上图是Docker容器(可用k8s管理的玩意儿)与传统虚拟化方式的不同...
    99+
    2023-06-06
  • MySQL数据库基础架构是怎么样的
    这篇文章给大家分享的是有关MySQL数据库基础架构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.Application LayerMySQL的应用层提供各种用户对数...
    99+
    2024-04-02
  • 关键字case when是怎样使用的
    关键字case when是怎样使用的?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数据库的case when关键字,其实就是类似于if,e...
    99+
    2024-04-02
  • Python基础中os和数据结构是怎么样的
    Python基础中os和数据结构是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。今天总结了下Python的基础,发现还是有很多基础需要巩固,直接把学习的...
    99+
    2023-06-04
  • html5基础标签以及用法是怎样的
    html5基础标签以及用法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、  声明的变化<!DOCTYPE ht...
    99+
    2024-04-02
  • python基础中K近邻算法是怎样的
    python基础中K近邻算法是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、k-近邻算法原理及API1.k-近邻算法原理如果一个样本在特征空间中的k个最相似(即特征空...
    99+
    2023-06-25
  • web开发中对于长尾关键词的理解是怎样的
    本篇文章给大家分享的是有关web开发中对于长尾关键词的理解是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。网站上非目标关键词但也可以带来...
    99+
    2024-04-02
  • 云服务器基础架构是什么样的
    硬件方面,云服务器通常采用英特尔至强可扩展处理器,以及英特尔8000处理器、512GB内存和160GB SSD硬盘等硬件组成的基础架构。英特尔至强处理器是目前最先进的服务器处理器之一,可以提供高性能、高可靠性和高能效比,并支持多种操作系统和...
    99+
    2023-10-28
    架构 服务器 基础
  • PS基础知识中的图层效果是怎样的
    这篇文章将为大家详细讲解有关PS基础知识中的图层效果是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。   1. 图层蒙版,是一个临时通道,控制图层的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作