站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

docker是容器吗

时间:2022-06-18 [网络编程]作者:fabuyuan 浏览:4 次

docker不是容器;容器是打包代码及其所有依赖的软件的标准单元,用于开发、交付和部署,使应用可以从一个环境快速可靠地运行到另一个环境,而docker则是容器技术的一种实现,是一个开源的应用容器引擎,是用来管理容器的。

本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。

docker不是容器

Docker和容器的关系

现在一说到容器,第一时间就会想到Docker,但是容器并不等同于Docker,Docker只是容器技术的一种实现,用来管理容器,就像VMware是虚拟机的一种实现一样,除了Docker,还有LXC/LXD、rkt等容器技术实现,只是Docker最为出名。

什么是容器

Docker网对容器的解释,一句话概括,容器(Container)就是将软件打包成标准化单元,以用于开发、交付和部署。容器是打包代码及其所有依赖的软件的标准单元,使应用可以从一个环境快速可靠地运行到另一个环境。容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。容器赋予了软件独立性,将其与环境隔离开来,确保在例如开发和预演环境这种存在差异的环境中统一地运行。

容器也是一种用于打包应用(已编译)代码以及运行时所需依赖的技术。运行的每个容器可以重复,通过包含依赖项实现标准化意味着在任何环境运行容器都可以得到相同的行为。容器将应用与主机基础结构分离,使其在不同的云和操作系统环境部署更加容易。容器是不可变的,无法更改已运行容器的代码。如果一个容器化应用需要更改,则需要构建一个包含更改的新容器,从更新的镜像从新创建容器。

容器技术实质上是对系统资源的隔离和控制,使容器进程运行于属于自己的独立的命名空间(namespace)。容器可以拥有自己的文件系统、网络配置、进程空间等,容器内的进程是运行在一个隔离的环境里,使用起来就好像是在一个独立于宿主的系统下操作一样,也使得容器可以很方便的在任何地方运行。

容器的优点

容器的主要优点概括如下:

  • 使用简单高效:与虚拟机镜像相比,容器镜像更易用、更高效。容器体积小启动快,不需要与外部的基础架构环境绑定,完美解决从开发到生产环境的一致性问题。

  • 监测与管理:容器比虚拟机更加透明,有助于监测与管理。尤其是容器进程的生命周期由基础设施管理,而不是被进程管理器隐藏在容器内部。最后,每个应用程序用容器封装,管理容器部署就等同于管理应用程序部署。

  • 持续集成和部署:容器消除环境差异,保证应用生命周期环境一致性和标准化。开发人员使用镜像实现标准开发环境构建,开发完成后封装完整环境和应用镜像,测试运维人员可以直接部署镜像进行测试和发布,简化了持续集成、测试和发布过程。

  • 环境标准化与版本控制:基于容器提供的环境一致性和标准化,可以对容器镜像进行版本控制,即能够对整个运行环境进行版本控制,提供可靠与频繁的容器镜像构建、部署和快速简便的回滚。

  • 资源高效利用与隔离:容器没有管理程序的额外开销,与底层共享操作系统,性能优良,系统负载低,在相同条件可以运行更多应用实例,可以充分利用系统资源。容器还拥有不错的资源隔离与控制能力,可以精确地分配系统资源,保证应用之间互不影响。

  • 可观测:不仅显示操作系统的信息和度量,还显示应用自身的信息和度量。

  • 云和操作系统分发可移植性:可运行在Ubuntu、RHEL、 CoreOS、物理机、GKE以及其他任何地方。

  • 以应用为中心:从传统的硬件上部署操作系统提升到操作系统中部署应用程序。

  • 松耦合、分布式、弹性伸缩和微服务:应用程序被分成更小,更独立的模块,并可以动态管理和部署,而不是运行在专用设备上的大型单体程序。

什么是Docker

Docker毫无疑问是从众多容器技术中脱颖而出的佼佼者,至于Docker具体是什么,通过下面几点总结:

Docker是一个开源容器项目,代码在GitHub维护,遵循Apache 2.0协议并已加入Linux基金会,受到主流操作系统以及云服务提供商支持,成立推动了开放容器联盟(OCI)。

Docker使用Google公司的Go语言进行开发实现,基于Linux内核的命名空间(namespace) 、控制组(cgroup)以及OverlayFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。

Docker最初是基于Linux容器(LXC)实现,后来使用自己开发的libcontainer替代了LXC,然后进一步演化为使用runc和containerd。

Docker提供了高效、敏捷和轻量级的容器方案,可在容器内快速自动化部署应用,通过操作系统内核技术为容器提供资源隔离与安全保障,极大地简化了容器创建与维护,并支持部署到本地环境和多种云平台。换句话说,Docker为应用开发、运行和部署提供了一站式解决方案。

runc是一个Linux命令行工具,用于根据OCI容器运行时规范创建和运行容器。

containerd是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。

Docker的优势

作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。具体总结如下:

  • 更高效的利用系统资源:容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker对系统资源的利用率更高,需求量更小,可以实现更高的性能。一个相同配置的主机,使用容器可以比虚拟机运行更多数量的应用。

  • 更快速的启动时间:Docker容器应用可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。

  • 一致的运行环境:Docker镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现同样的代码换个环境就无法运行这类问题。

  • 持续交付和部署:使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员通过Dockerfile构建镜像并结合持续集成系统进行集成测试,运维人员可以直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动部署。

  • 更轻松的迁移:Docker确保了执行环境的一致性,使得应用在不同平台之间的迁移更加容易,而不用担心运行环境的变化导致应用无法正常运行的情况。

  • 更轻松的维护和扩展:Docker使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。Docker还维护了一大批高质量网镜像,进一步降低了应用服务的镜像制作成本。

  • 良好的隔离性:Docker为容器提供了可靠的资源隔离与安全保障,使容器精确地分配系统资源,保证应用之间互不影响。

  • 弹性伸缩:善于处理集中爆发的服务器使用压力,动态的管理应用。

推荐学习:《docker视频教程

以上就是docker是容器吗的详细内容,更多请关注站长家园其它相关文章!

本文标签:  Docker

转载请注明来源:docker是容器吗

本文永久链接地址:https://www.adminjie.com/post/13682.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • MySQL日志管理(总结分享)

      MySQL日志管理(总结分享)

      本篇文章给大家带来了关于mysql的相关知识,其中主要整理了日志管理的相关问题,包括了错误日志、通用查询日志、二进制日志等等内容,下面一起来看一下,希望对大家有...

    • html5草案是哪一年发布的

      html5草案是哪一年发布的

      html5草案是在2008年发布的。HTML5草案的前身是“WebApplications1.0”,是在2004年被“WHATWG”提出,直到2008年1月...

    • Vue3和Vue2的差异是什么?全方位对比一下!

      Vue3和Vue2的差异是什么?全方位对比一下!

      Vue3和Vue2的差异是什么?下面本篇文章给大家全方位对比Vue3与Vue2,聊聊Vue3与Vue2的区别,希望对大家有所帮助!从Vue3发布以来,我就一直对...

    • 浮动是css3的新特性吗

      浮动是css3的新特性吗

      浮动不是css3的新特性。定义元素在哪个方向浮动的float属性在css1时就已经可以使用了,css的浮动会使元素向左或向右移动,其周围的元素也会重新排列,一个...

    • translate是css3属性吗

      translate是css3属性吗

      translate是css3的一个新的css属性;translate属性用于定义元素的2d平移转换,该属性常与transform属性配合使用,transform...

    热门文章