Docker容器化解锁Dev和Ops的潜力
自由选择,敏捷操作和集成容器,遗留和云原生应用程序的安全性
什么是容器
标准化的软件单元
- 将软件打包成标准化单元,用于开发,装运和部署
容器是一个标准的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境。 Docker容器映像是一个轻量级,独立的可执行软件包,包含运行应用程序所需的一切:代码,运行时,系统工具,系统库和设置。容器映像在运行时成为容器,在Docker容器的情况下 – 映像在Docker Engine上运行时成为容器。 适用于基于Linux和Windows的应用程序,无论基础架构如何,容器化软件都将始终运行相同。 容器将软件与其环境隔离开来,并确保它可以统一工作,尽管开发和分段之间存在差异。
在Docker Engine上运行的Docker容器:- 标准:Docker为容器创建了行业标准,因此它们可以随处携带
- 轻量级:容器共享机器的操作系统内核,因此不需要每个应用程序的操作系统,从而提高服务器效率并降低服务器和许可成本
- 安全:应用程序在容器中更安全,Docker提供业界最强大的默认隔离功能
- Docker容器无处不在:Linux,Windows,数据中心,云端,无服务器等。
Docker容器技术于2013年作为开源Docker Engine推出。它利用围绕容器的现有计算概念,特别是在Linux世界中,称为cgroups和名称空间的原语。 Docker的技术是独一无二的,因为它专注于开发人员和系统操作员将应用程序依赖性与基础架构分离的要求。Linux世界的成功推动了与微软的合作,将Docker容器及其功能引入Windows Server(有时也称为Docker Windows容器)。Docker及其开源项目Moby提供的技术已被所有主要数据中心供应商和云提供商所利用。 其中许多提供商正在利用Docker来提供容器本地IaaS产品。 此外,领先的开源无服务器框架利用Docker容器技术。 - 比较容器和虚拟机
容器和虚拟机具有类似的资源隔离和分配优势,但功能不同,因为容器虚拟化操作系统而不是硬件。 容器更便携,更高效。容器:
容器是应用层的抽象,它将代码和依赖关系打包在一起。 多个容器可以在同一台机器上运行,并与其他容器共享操作系统内核,每个容器在用户空间中作为独立进程运行。 容器占用的空间比VM少(容器映像的大小通常为几十MB),可以处理更多的应用程序,并且需要更少的VM和操作系统。
虚拟机
虚拟机(VM)是物理硬件的抽象,将一台服务器转变为多台服务器。 虚拟机管理程序允许多台虚拟机在一台计算机上运行。 每个VM都包含操作系统的完整副本,应用程序,必要的二进制文件和库 – 占用数十GB。 虚拟机也可能很慢启动。 - 容器和虚拟机在一起
在一起使用的容器和VM在部署和管理应用程序时提供了极大的灵活性 - 集装箱标准和行业领导
2013年Docker的推出开启了应用程序开发的一场革命 – 通过软件容器的民主化。 Docker开发了一种Linux容器技术 – 一种便携,灵活且易于部署的技术。 Docker开源libcontainer并与全球贡献者社区合作,以进一步发展。 2015年6月,Docker将容器映像规范和运行时代码(现称为runc)捐赠给Open Container Initiative(OCI),以帮助在容器生态系统发展和成熟时建立标准化。随着这一发展,Docker继续回馈容器项目,Docker于2017年捐赠给云计算本地计算基金会(CNCF).containerd是一个行业标准的容器运行时,利用了runc,创建时强调简单性,健壮性 和便携性。 containerd是Docker Engine的核心容器运行时。
文档阅读-Why Docker