本篇内容介绍了“Docker与OpenStack有什么联系”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
基于需求刺激,容器技术应运而生。容器的发展从 Chroot,FreeBSD jails,OpenVZ,LXC,到如今的 Docker、Rocket 真正走向了大规模应用。
相比普通服务器,容器是一种更轻量级,更灵活的虚拟化处理方式,它将一个应用程序所需的一切打包在一起。一般情况下开发人员在编写代码时,他们是在自己本地的开发环境中工作;当他们准备将代码移至生产环境时,总会发生一些意想不到的事情。原因多种多样:不同的操作系统,不同的依赖项,不同的库。
而容器解决了可移植性这一关键问题,它可以将代码与运行它的环境分开。开发人员可以将应用程序(包括正确运行所需的所有库)打包到一个小的容器镜像中。该镜像可以在其他任何计算机上运行。
虽然 Docker 经常会和“容器(Container)”一词相提并论,但是 Docker 本身并不是容器。从字面意思可以解读,“Container”原译为“集装箱”,而“Docker”被译为“码头工人”。
Docker 是一个开源的应用容器引擎,是创建容器的工具。让开发者可以打包他们的应用和依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上。
2013 年 PyCon 大会之后,Docker 迅速成为社区、客户和更广泛行业的实际标准与基石。Docker 的强大之处在于它通过可移植的形式和易于使用的工具,在应用程序和基础设施之间创造了独立性,使得容器技术大众化,并使容器技术成为主流。
Docker 如此大火,但是我们需要知道,Docker 并不是唯一的,也不是第一个出现的容器平台。其他的框架,例如 OpenVZ 和 LXC(Linux Container),于 2000 年中期就已经开始使用。而 FreeBSD jails,则可以追溯到更远的年代。Docker 是在 2013 年发布的,与当今大多数主流的容器技术相比,它是非常年轻的。
虽然 Docker 不是最成熟的,却引起了极大的关注。这是因为 Docker 是一个扩展的 Linux 容器(LXC),是一种独特轻巧、以应用为中心的虚拟化工具。它大大降低了企业开销,也更容易让企业在服务器上部署软件。且 Docker 允许系统管理员和开发人员在容器中构建任何应用程序,节省资源。
除此之外,Docker 发展迅猛的原因还有:
Docker 从一开始就是开源的,这使得 Docker 在行业内有了强大的吸引力。直到 2013 年,行业才开始将“开源”视为软件生产的默认模式。
Docker 出现在了正确的时间。到 2013 年,虚拟机似乎已经成为了过时的技术。大家一直在寻找一种更精简,更方便的方式来部署应用程序,而这时 Docker 出现了,它恰好符合要求。
Docker 使用的另一个主要重点是 DevOps。DevOps 在 2010 年初开始流行,它强调了软件交付的敏捷性、灵活性和可扩展性。Docker 恰好为根据 DevOps 部署应用程序提供了合适的环境。
容器和虚拟机这两种技术经常被互相比较。所谓虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
Docker 可能被认为是当前容器技术的代表,而作为虚拟机技术的代表,OpenStack 也被大众所周知。
OpenStack 是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。它不是一个软件,而是一个云平台管理的项目。这个项目由几个主要的组件组合起来完成一些具体的工作。其中主要包括:
Nova(Compute):在 OpenStack 环境中计算实例(即创建的云主机)的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。
Neutron(Networking):确保为其它 OpenStack 服务提供网络连接即服务。
Swift(Object Storage):通过基于 HTTP 的应用程序接口存储和任意检索的非结构化数据对象。
Glance(Image service):存储和检索虚拟机磁盘镜像,OpenStack Compute 会在实例部署时使用此服务。
许多人都会常用 Docker 和传统虚拟机来做比较,并且经常凸显出 Docker 的优势。其实这和 OpenStack 没有直接关系。曾经许多的性能测试都会将 Docker 与 KVM 进行对比,但是后来发现这些测试是通过 OpenStack 运行的,这表明两种技术其实可以很好地协同工作。
那么如果使用了 Docker,还能使用 OpenStack 吗?
答案是可以的,Docker 以最简单的形式提供了一个容器,用于管理共享基础架构上的应用程序,同时又使它们彼此隔离。而虚拟机则通过创建一个完整的操作系统来完成类似的工作。OpenStack 的官方文档(https://wiki.openstack.org/wiki/Docker)特别提供了部署 Docker 的解决方案,并且单独指出:“容器并非旨在替代虚拟机,它们是互补的,因为它们更适合特定的用例。”
如果第一次看到 Kubernetes 这个词,可能会比较好奇它为何简写为 K8S。其实是 k 与 s 中间正好隔了 8 个字母,K8S 为一种偷懒地写法。Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
作为容器编排的解决方案,随着 Kubernetes 越来越流行,“Kubernetes” 与 “Docker” 这两个词也经常会相提并论。
目前,Kubernetes 可以说是市场领导者,及编排容器和部署分布式应用程序的标准化方法。Kubernetes 可以在公共云服务或本地运行,具有高度模块化,开放源代码,并且拥有一个活跃的社区。许多云厂商也都已经提供了 Kubernetes 作为服务。
当然了,Docker 和 Kubernetes 并不是竞争对手。Docker 是一个容器化平台,而 Kubernetes 是 Docker 等容器平台的协调器。它旨在为容器提供高效地管理,监视应用程序的运行状况,使应用程序提供不间断地服务,而不需要运维人员去进行复杂的手工配置和处理。
云计算技术发展至今,从最开始的硬件虚拟化、IaaS、OpenStack、PaaS、容器到如今的 Serverless,云计算已经越来越接近应用逻辑。容器实现了应用的分装,方便了应用在不同环境间的迁移,轻量级的特性又使它能够消耗更少的资源而带来更大的便利。
“Docker与OpenStack有什么联系”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。