Docker和OpenShift都是用于实现PaaS服务的框架。
他们如何比较架构和功能?
Answers:
主要区别在于,Docker作为一个项目仅专注于运行时容器,而OpenShift(作为系统)既包含运行时容器也包括REST API,协调以及用于部署和管理各个容器的Web界面。
仅比较运行时容器,OpenShift和Docker都使用内核隔离功能将租户进程分开。对于主要通过LXC的Docker和主要通过SELinux和多类别安全性(MCS)的OpenShift。两者都使用cgroup限制租户的CPU,内存和IO。上游OpenShift正在研究LXC,以减少长期工作量。
Docker使用AUFS进行高级磁盘和写时文件复制共享,OpenShift既不需要也不与这种系统不兼容。
在容器内部,OpenShift通过“盒”为功能单元(Web服务器,数据库)建模,盒是在调用系统时调用的一组Shell脚本挂钩。此处介绍了API。墨盒大致类似于docker映像。
Openshift还描述了API,代理(协调器)通过该API与节点(承载多个租户容器的服务器)进行通信,以调用该容器中的端点。
编辑添加:截至2015年6月,OpenShift Origin 1.0在Docker和Kubernetes之上运行,您可以构建和开发可在Docker运行时上运行的多容器应用程序。OpenShift在Kube和Docker之上添加了构建,图像工作流和升级以及安全的容器集群操作
我认为我应该使用2018年底之前提供的信息来更新此问题的答案。
现在的情况比最初提出问题时要复杂一些。目前,Docker Inc.是docker和Moby的主要开发人员-Moby目前是docker运行时和docker商业企业版(想象中称为Docker Enterprise Edition)的上游项目。
对这个问题的当代分析将使Docker Enterprise Edition与RedHat OpenShift进行比较。这些容器平台彼此直接竞争,并且都被认为是可以在本地和云中运行的Kubernetes发行版。在撰写本文时,Docker Inc.的Docker-EE在功能和销售方面处于领先地位,但来自提供kubernetes平台即服务并开始使用的公共云提供商的竞争异常激烈。迁移到更高级的无服务器容器平台。
到目前为止,这是最好的初学者解释。 https://deis.com/blog/2016/kubernetes-illustrated-guide/
这不是在开玩笑,有时候我们需要像小孩子一样看待事物,以便真正理解。
我不会说它们甚至是可比的。Openshift是Redhat基于Kubernetes构建的企业解决方案。Kubernetes只是一个框架,可帮助组织和自动化使用Docker容器的工作。我将从视频开始,然后在较低层次上看一下kupernetes。一旦您感到舒适,就可以开始研究openshift添加的功能。
Openshift更像是容器编排的抽象层。Openshift内部使用Kubernetes进行容器编排。Kubernetes是Docker容器的容器编排系统,与Docker swarm相比更为广泛。
Openshift是部署企业应用程序的理想平台,因为它提供了Image(S2I)功能,容器编排,服务发现,服务扩展,构建管道的源代码。所有这些都是通过CLI和提供良好用户界面的openshift仪表板完成的。Docker拥有Docker swarm来进行容器编排,但是很多事情都必须手动完成而没有任何用户友好的接口。