当前位置: 首页 > news >正文

常州市钟楼建设局网站永久免费无代码开发平台网站

常州市钟楼建设局网站,永久免费无代码开发平台网站,ssh做电商 网站,多个网站一个域名引言在解释docker是什么之前#xff0c;我们首先应该先了解的是容器化的概念。什么是容器#xff1f;就是一个沙箱#xff0c;在这个沙箱中涵盖了特定应用运行的一切依赖的内容。但他不是一个操作系统#xff0c;且和底层的操作系统是隔离的。什么是容器化#xff1f;容器…引言在解释docker是什么之前我们首先应该先了解的是容器化的概念。什么是容器就是一个沙箱在这个沙箱中涵盖了特定应用运行的一切依赖的内容。但他不是一个操作系统且和底层的操作系统是隔离的。什么是容器化容器化就是将软件和应用所需要的所有依赖打包到一个独立的容器中使得软件能够在不同的计算环境中高效的、按照预期运行的技术。先有容器化的概念还是先有的docker先有的容器化概念容器化最早提出是在1979年贝尔实验室发明了chroot用于将一个进程的文件系统隔离起来通常认为这是容器技术的开端。和虚拟化技术有什么联系有关联也有区别参考下文“虚化技术”。Docker 优势一项技术的优势通常是在说他解决了传统技术的哪一项痛点这也是技术持续迭代的一个动力。传统部署痛点传统的部署方式通常是在虚拟机上直接部署如果你有部署过虚拟机服务你会经历过如下痛点1. 环境不一致主要是设备、系统、工具等方面的差异举个例子一般我们在服务器上都是使用Linux的相关版本所以如果开发使用的是Linux系统一些脚本等配置都可以无缝迁移但如果使用windows我们可能会经历在本地能跑但是部署到服务器却因为缺少一些信息无法启动或调用失败的问题。2. 部署复杂传统的虚拟机手工部署在首次部署时需要安装很多工具包如果某个步骤出错就可能会需要我们从头开始排查耗费比较多的人力成本。后续的部署过程中以war包为例如果war包有问题我们又需要赶紧重新部署旧的服务否则服务挂了对用户来说太痛了这个时期的部署一般都选择夜间用户谷期进行。 当然后来也演化除了一键部署等运维手段但是依旧有跨环境部署的问题因为生产环境限制永远要比我们开发测试的环境更高。 3. 资源占用率很高传统虚拟化技术是模拟完整的操作系统实现相关的隔离需要提前进行资源的“预分配”所以这里的资源浪费是比较严重的一台服务器可能部署3台虚拟机就到顶了。4. 扩容效率低虚拟机部署方式下我们如果遭遇到突发的大流量比如某位名人空降微博热搜这种情况下大概率是会宕机的不是DDoS胜似DDoS等虚拟机的再扩容启动虚拟机启动相对耗时较长这波流量可能就过去了吃不到。Docker 的解决方法对于以上的痛点Docker 采取了“镜像容器”的方案来解决实现了“一次构建随处运行”。1. 镜像的本质就是应用运行时所需要的完整环境快照包含程序、库、资源、配置文件等他不包含动态的数据一旦构建完成就不会再变了。由于环境的固化我们得以实现版本和配置差异的打平解决了环境不一致的问题。同时由于镜像分层存储的架构设计使得不同镜像可以复用底层相同的层从而避免“资源冗余”。2. 容器的本质则是一个具有Namespace的进程它具有自己的文件系统、网络和进程空间。容器是一个轻量、隔离的执行环境专门用于运行我们的镜像而不需要考虑能否运行其他应用同时由于共享操作系统内核所以他没有内核的开销不需要安装完整的操作系统再加上它本身也具有被创建、启动、暂停、停止、删除的能力所以为什么不能说他是一个轻量化的虚拟机呢这些特点使得容器资源占用变低启动速度更快从而也使得扩缩容的效率变高。这里提供一下容器化和虚拟化技术的对比维度容器化Containerization虚拟化Virtualization隔离级别进程级共享内核系统级每个VM有独立内核资源抽象抽象应用层运行时环境、依赖抽象硬件层CPU、内存、存储、网络启动速度秒级无需加载内核分钟级需启动完整操作系统资源效率高轻量级低VM管理程序占用额外资源密度单主机可运行数百个容器单主机通常运行数十个VM隔离强度中等依赖内核安全机制存在容器逃逸风险高完全独立的操作系统环境适用场景微服务、DevOps、弹性伸缩、CI/CD传统应用迁移、关键业务系统、多租户隔离代表技术DockerKubernetescontainerdVMware vSphereHyper-VKVMXenDocker 引擎上文说到容器的本质是一个进程那么也就是说可以通过操作系统来直接 kill 掉对应的 docker 实例也可以通过操作系统来启停容器。理论上来说是这样但是我们在创建一个 docker 容器的同时需要需要一个工具帮我们去处理创建该进程所需要准备的东西以及在创建完成后可以帮助我们快速的去维护这些容器实例所以这样一个工具就是 Docker 引擎他能做到的自然是不止我们现在说的这些内容。从使用层面来说Docker 引擎是 Docker 的核心组件但是也不必过于害怕这也就是一个普通的应用工具和其他Linux命令一样只是他的能力聚焦于管理 Docker 核心资源镜像Image、容器Container、网络Network、存储卷Volume。Docker 引擎的工作主要是负责管理和运行容器包含以下几个部分Docker 守护进程Docker 引擎的后台服务负责持续运行并处理容器相关的请求守护进程管理着整个容器的生命周期。Docker REST API提供 HTTP 的 API 接口通过 HTTP 请求和 Docker 引擎进行交互。Docker 命令行工具cli 工具可以在命令行直接输入 Docker 命令与 Docker 引擎进行交互。容器与镜像管理镜像的创建和存储、容器的生命周期管理、容器网络管理。但整体看下来不难发现Docker 引擎所处理的主要就是我们前文所说的两件事情资源管理和容器的生命周期管理。在这里的“资源”所指代的范围是比较大的网络也被认为是一种资源。在目前的网络上搜索 Docker 大多数的文章基本是在进行 Docker 的命令行的使用及解释了解一下就行了实际使用的时候翻阅也没什么问题 docker pull docker run image docker stop docker ps ...Docker 的轻量级那么 Docker 的轻量级因何而来为什么他就比虚拟机要轻量要理解这个问题其实也就是一两句话的事情传统的虚拟机是在一个硬件层之上运行的一个完整的操作系统而 Docker 则是运行在应用层之上的。不妨想一下启动电脑快还是启动应用快传统虚拟机是通过虚拟化技术将底层的硬件虚拟化为硬件资源池提供给上层的每个 VM Virtual Machine虚拟机使用让每个 VM 都认为自己是独立运行在物理机上的。其后每个 VM 又是运行的完整的操作系统仅仅是操作系统基础服务就需要占用较多的资源而且这些资源是被 VM 独占的不可被其他虚拟机复用。虚拟机启动时会锁定配置好的资源分配如VM需要2c4g的基础资源则会预先锁定不让其他 VM 使用该资源这种虚拟化架构实际就是寄居虚拟化主要分三层宿主操作系统Host OS - 虚拟机监控程序Hypervisor - 虚拟机Guest OS下面是对应的架构图一个典型的应用就是我们熟知的 VMWare Workstation这就是传统虚拟机重的由来。Docker 的轻量级也并不是因为他解决了这些问题而是因为他另辟蹊径不再去模拟一个完整的操作系统而是基于 Linux 内核的 Namespace、Cgroups以及UnionFS技术实现从系统级别的隔离转换到了进程级别的隔离从架构层面抹除了硬件模拟和虚拟机操作系统的开销。Namespace 提供资源隔离机制将 PID、Network、Mount、User 等资源进行命名空间层级的划分不同的 Namespace 的进程无法互相访问到。Cgroups 进行配额限制避免某一个进程组无限制的消耗资源同时可以让空闲资源被释放。UnionFS 实现镜像分层复用不同的镜像可复用底层镜像减少存储的冗余。这样一来Docker 虚拟化的架构就变成了没有了 Hypervisor 和 Guest OS同时由于 Docker 是基于 Linux 内核技术的所以宿主操作系统也只能是 Linux。Docker 与云原生云原生本质是一种构建和运行应用程序的方法是以 k8s 为代表的一套技术体系和方法论[3]。这套技术体系是由 “容器化技术、编排调度、服务治理、可观测性” 等技术组成而其中的容器化技术是云原生的 “基础载体”。而 Docker 则是容器化技术的 “开创者与早期绝对主导者”也是云原生的核心应用他通过解决传统部署的痛点问题使得以容器为基础去构建分布式应用成为可能从而推动了云原生的普及落地可以说如果没有 Docker那云原生可能发展的不会如此迅速还需要等待另一个“Docker”技术来推动其发展。此外Docker 定义的容器镜像标准也成为了云原生应用的一个交付载体标准。目前的云原生应用的 CI/CD 标准流程是代码提交→自动构建 Docker 镜像→镜像推送到仓库→编排工具拉取镜像部署可以看到在这个过程中镜像就是代码到运行时的中间载体也是我们交付的一个产物标准。目前 k8s 1.20 以后的版本已经弃用了对 Docker 的直接支持转为原生支持 CRI 标准的容器运行时但是这并不代表着 Docker 已经过时只是 k8s 从以 Docker 主导转变为了基于 Docker 标准多工具的生态协同。总结Docker 不仅是一项技术创新更重塑了软件产业的协作模式。Docker 将 Linux 内核的 Namespace、Cgroups、UnionFS 等技术封装成简单易用的工具链条通过“镜像-容器 ”架构解决了传统部署的行业痛点问题标准化了应用交付格式为 k8s 等编排平台提供了基础载体重塑了软件开发流程实现“一次构建到处运行”的理想态推动了云原生的迅速发展。未来随着云原生技术持续演进Docker 可能也不再是容器领域的唯一焦点但其倡导的 标准化、轻量化、可移植 理念已深刻影响整个行业。无论是作为开发者日常工具还是云原生基础设施的重要组成部分Docker 仍会在上云浪潮中扮演关键角色。
http://www.pierceye.com/news/20441/

相关文章:

  • 那个网站攻略做的好贵阳学校网站建设
  • 全屋定制设计网站推荐洛可可
  • 淘宝网站建设策划案鞍山市建设工程安全生产监督管理站网站
  • 东营网签查询系统官方网站襄阳做网站公司电话
  • 粉色的网站企业网络组建工作流程
  • 软件设计学什么中国seo高手排行榜
  • 爱站网关键词挖掘工具wordpress 安装要求
  • 培训机构网站制作网站开发总结
  • 济宁网站建设哪家便宜公司网站建设全包
  • 上海网站建设升级wordpress改不了密码
  • 做外贸怎样打开国外网站做网站后期续费是怎么算的
  • 义乌外贸网站建设公司网站国际推广
  • 网站你懂我意思正能量晚上小型生鲜超市店面设计
  • 网站开发工作好找吗网页截图快捷键是哪个键
  • 网站设计的简称在马来西亚做网站网站合法吗
  • 做设计需要素材的常用网站微信网站开发是什么
  • 做酱菜网站有pc网站 移动网站怎么做
  • 网站建设游戏开发中国娱乐设计网站官网
  • 945新开传奇网站网页翻译的快捷键是什么
  • 数据库网站开发外文翻译一个网站多个域名的seo优化
  • 安溪网站建设公司四川网站建设找珊瑚云
  • 北京seo招聘信息成都百度推广排名优化
  • 网站建设pdf微盘个人简介代码网页制作模板
  • 自己怎样做网站文章关键词内链网站型与商城型有什么区别吗
  • 厦门网站建设要多少钱数据分析师前景
  • 长沙市网站建设公司代理商ftp建网站
  • 网站 推广 实例极强防红短链接生成
  • 北京集团 网站建设西安网站seo优化
  • 做招聘的网站建设部资质网站
  • 做网站需要哪些条件企业系统定制开发