【Docker】Docker的上风、与捏造机技能的区别、三个告急概念和架构及工作原理详细解说

[复制链接]
发表于 2026-2-27 13:31:37 | 显示全部楼层 |阅读模式

媒介
   Docker 是一个开源的应用容器引擎,让开辟者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何盛行的Linux或Windows操纵体系的呆板上,也可以实现捏造化,容器是完全使用沙箱机制,相互之间不会有任何接口。
  
   作者简介: 辭七七,现在大一,正在学习C/C++,Java,Python等
作者主页: 七七的个人主页
文章收录专栏: 七七的闲谈
接待各人点赞 👍 收藏 ⭐ 加关注哦!💖💖
  

Docker是什么


   Docker 是一个开源的应用容器引擎,基于 Golang 语言开辟,可以让开辟者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何盛行的 Linux 服务器。容器是一个沙箱机制,相互之间不会有影响(雷同于我们手机上运行的 app),而且容器开销是很低的。
  Docker 是一个供开辟职员和体系管理员构建、运行和与容器共享应用步伐的平台。使用容器摆设应用步伐称为容器化。容器并不是新事物,但它们用于轻松摆设应用步伐却是奇怪的。
注意:Docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。
1. Docker的上风有哪些



  • 机动性:纵然是最复杂的应用步伐也可以容器化。
  • 轻量级:容器使用并共享主机内核,使它们在体系资源方面比捏造机更有用率。
  • 可移植:您可以在当地构建,摆设到云上,并在任何地方运行。
  • 松耦合:容器是高度自给自足和封装的,允许您在不影响其他容器的环境下更换或升级此中一个。
  • 可扩展:您可以跨数据中心增长和自动分发容器副本。
  • 安全性:容器对历程应用自动束缚和隔离,而不须要用户举行任何设置。
2. Docker的作用

Docker 是一个用于开辟、传送和运行应用步伐的开放平台。Docker 使您可以大概将应用步伐与根本办法分开,以便您可以快速交付软件。使用 Docker,您可以像管理应用步伐一样管理根本办法。通过使用 Docker 的快速交付、测试和摆设代码的方法,您可以显着镌汰编写代码和在生产中运行代码之间的延长。Docker(opens new window)是个划期间的开源项目,它彻底开释了盘算捏造化的威力,极大进步了应用的维护服从,低沉了云盘算应用开辟的资源!使用 Docker,可以让应用的摆设、测试和分发都变得亘古未有的高效和轻松!无论是应用开辟者、运维职员、还是其他信息技能从业职员,都有须要熟悉和把握 Docker,节省有限的生命。

Docker告急用来办理什么题目?
Docker的出现告急就是为相识决:在我的呆板上运行时是正常的,但为什么到你的呆板上就运行不正常了。
  好比你写一个Web应用,而且当地调试没有任何题目。这时间你想发给你的朋侪试试看大概发布摆设到长途的云服务器上查察效果,那么起首你须要设置和你当地雷同的软件环境,如数据库,Web服务器(IIS,Tomcat,Nginx),须要的插件,库等等。而这你还不能包管的你的软件肯定可以大概运行起来,由于别人大概用完全差别的操纵体系,即便是使用Linux每种发行版也会有微小的区别。
为了模拟完全雷同的当地开辟环境。
我们起首想到的就是捏造机,但是捏造机须要模拟硬件,运行整个操纵体系不但体积痴肥内存占用高,步伐的性能也会受到影响。
3. Docker的脱颖而出


这时间Dokcer就派上了用场,Docker在概念上与捏造机非常雷同。但是Docker更轻量,它不会去模拟底层的硬件 ,只会为每一个应用提供完全隔离的运行环境。你可以在容器中设置差别的应用环境,而且不消的环境之间相互不影响,这个“环境”在Docker中也被称作为Container(容器)。
4. Docker和捏造机技能的区别

Docker 在容器的根本上,举行了进一步的封装,从文件体系、网络互联到历程隔离等等,极大的简化了容器的创建和维护。使得 Docker技能比捏造机技能更为轻便、快捷。
下面的图片比力了 Docker 和传统捏造化方式的差别之处。传统捏造机技能是捏造出一套硬件后,在其上运行一个完备操纵体系,在该体系上再运行所需应用历程;而容器内的应用历程直接运行于宿主的内核,容器内没有本身的内核,而且也没有举行硬件捏造。因此容器要比传统捏造机更为轻便。
5. Docker容器和捏造机的区别总结


特性docker容器捏造机启动秒级分钟级硬盘使用一样寻常为MB一样寻常为GB性能靠近原生(宿主机)弱于原生体系支持量单机支持上千个容器一样寻常几十个6. Docker中的三个告急概念


   Docker中的三个告急概念分别是:Image(镜像),Container(容器),Repository(仓储)。
  6.1 Image(镜像)一个特殊的文件体系

你可以把它明白成一个捏造机的快照(Snapshot),内里包罗了你要摆设的应用步伐以及它所关联的全部库。
  操纵体系分为内核和用户空间。对于Linux而言,内核启动后,会挂载root文件体系为其提供用户空间支持。而Docker镜像(Image),就相称于是一个root文件体系。Docker镜像是一个特殊的文件体系,除了提供容器运行时所需的步伐、库、资源、设置等文件外,还包罗了一些为运行时预备的一些设置参数(如匿名卷、环境变量、用户等)。 镜像不包罗任何动态数据,其内容在构建之后也不会被改变。
6.2 Container(容器)镜像运行时的实体

这里的容器就像是一台台运行起来的捏造机,内里运行了你的应用步伐,每个容器是独立运行的他们相互之间不影响。通过一个镜像,我们可以创建许多个差别的Container容器。
  镜像(Image)和容器(Container)的关系,就像是面向对象步伐计划中的类和类的实例一样,镜像是静态的界说,容器是镜像运行时的实体。容器可以被创建、启动、制止、删除、停息等 。容器的实质是历程,但与直接在宿主实行的历程差别,容器历程运行于属于本身的独立的定名空间。前面讲过镜像使用的是分层存储,容器也是云云。容器存储层的生存周期和容器一样,容器殒命时,容器存储层也随之殒命。因此,任何生存于容器存储层的信息都会随容器删除而丢失。
6.3 Repository(仓储)会合存放镜像文件的地方

镜像构建完成后,可以很容易的在当前宿主上运行,但是, 假如须要在别的服务器上使用这个镜像,我们就须要一个会合的存储、分发镜像的服务(就像Git堆栈一样),Docker Registry就是如许的服务。
  一个Docker Registry中可以包罗多个堆栈(Repository),每个堆栈可以包罗多个标签(Tag),每个标签对应一个镜像。以是说:镜像堆栈是Docker用来会合存放镜像文件的地方雷同于我们之前常用的代码堆栈。通常,一个堆栈会包罗同一个软件差别版本的镜像,而标签就常用于对应该软件的各个版本 。我们可以通过<堆栈名>:<标签>的格式来指定详细是这个软件哪个版本的镜像。假如不给出标签,将以latest作为默认标签。
7. Docker 架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用长途API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系雷同于面向对象编程中的对象与类。
Docker面向对象容器对象镜像类Docker采取 C/S架构 Docker daemon 作为服务端继承来自客户的哀求,并处理处罚这些哀求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个呆板上,也可通过 socket 大概RESTful API 来举行通讯。Docker daemon 一样寻常在宿主主机背景运行,等候吸取来自客户端的消息。 Docker 客户端则为用户提供一系列可实行下令,用户用这些下令实现跟 Docker daemon 交互。
8. 特性

在docker的网站上提到了docker的典范场景:


  • Automating the packaging and deployment of applications(使应用的打包与摆设自动化)
  • Creation of lightweight, private PAAS environments(创建轻量、私密的PAAS环境)
  • Automated testing and continuous integration/deployment(实现自动化测试和一连的集成/摆设)
  • Deploying and scaling web apps, databases and backend services(摆设与扩展webapp、数据库和背景服务)
由于其基于LXC的轻量级捏造化的特点,docker相比KVM之类最显着的特点就是启动快,资源占用小。

  • 构建尺度化的运行环境,现有的方案大多是在一个baseOS上运行一套puppet/chef,大概一个image文件,其缺点是前者须要base OS许多条件条件,后者险些不可以修改(由于copy on write 的文件格式在运行时rootfs是read only的)。而且后者文件体积大,环境管理和版本控制本身也是一个题目。
  • PaaS环境是不问可知的,其计划之初和dotcloud的案例都是将其作为PaaS产物的环境根本
  • 由于其尺度化构建方法(buildfile)和精良的REST API,自动化测试和一连集成/摆设可以大概很好的集成进来
  • 由于LXC轻量级的特点,其启动快,而且docker可以大概只加载每个container厘革的部分,如许资源占用小,可以大概在单机环境下与KVM之类的捏造化方案相比可以大概更加速速和占用更少资源
9. Docker 架构及工作原理

Docker使用客户端-服务器架构。Docker 客户端与 Docker 保卫历程通讯,后者负责构建、运行和分发Docker容器等繁重的工作。Docker 客户端和保卫历程可以运行在同一个体系上,大概您可以将一个 Docker 客户端毗连到一个长途 Docker 保卫历程。Docker 客户端和保卫历程通过 UNIX 套接字或网络接口使用 REST API 举行通讯。

   关于【Docker】Docker的上风、与捏造机技能的区别、三个告急概念和架构及工作原理详细解说,七七就先分享到这里了,假如你以为这篇文章对你有资助,请给七七点个赞吧,假如发现什么题目,接待批评区留言!!💕💕

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表