容器上使用Docker还是Rocket?为什么不一起用呢?
原文链接:http://dockerone.com/article/130
容器技术异军突起,在2014年接近尾声时,CoreOS在Docker发布了Rocket,声称Docker的流程模型有着“根本性的缺陷”。虽然CoreOS的创始人Alex Polvi尽量缓和语气,但是他坚持自己的基本观点,Docker不再是构建系统的最佳组件。不过,CoreOS的Plovi和Docker的创始人Solomon Hykes在一点上有着共识:Rocket和Docker实际上不是竞争关系。
在2014年接近尾声时,CoreOS在Docker发布了Rocket,声称Docker的流程模型有着“根本性的缺陷”。虽然CoreOS的创始人Alex Polvi尽量缓和语气,但是他坚持自己的基本观点,Docker不再是构建系统的最佳组件。
容器技术最近异军突起,所以很容易看出为什么Polvi这么积极地跑马圈地。因为容器之争才刚刚开始,不过,更严重的问题是供应商之间这样来回的争吵是否会吓跑那些想要采用容器技术的企业,至少让他们等到争论尘埃落定时。
平台 vs. 组件
CoreOS的Plovi和Docker的创始人Solomon Hykes在一点上有着共识:Rocket和Docker实际上不是竞争关系。Hykes说,Rocket“实际上是libcontainer的竞争对手”,而不是整体Docker平台的竞争对手。Libcontainer,是“为容器制定配置选项”的库,它对于Docker至关重要,它也是社区的努力结果,能帮助定义容器的未来。
正如InforWorld的Serdar Yegulap所写,Libcontainer非常重要。
但是Plovi显然觉得Docker忽略了它自己的核心愿望而想去做更多 – 成为平台。
Polvi 说:
"Docker一开始是用来构建平台的组件。一个构建模块。一个可以集成到现有系统使其可以使用容器的东西。这是Docker的最初价值,帮助构建东西的简单工具,这也是我觉得Docker能在今天这么成功的原因。" |
这在有些方面这有点像“我们想回到过去的黄金年代”,但是Plovi坚持这不是反Docker,而是希望Docker继续作为一个开放组件来帮助构建其他系统:
Docker[现在]本身就是一个平台,不是构建模块。这是坏事吗?不,它只不过不再是构建系统的最佳组件。包括我们的系统,在这上面我们想要使用容器来构建OS。
我们认为还需要这样的组件存在,让其他系统能与之集成。我们认为Docker的初衷仍然是正确的,因此我们想确保它继续存在。这就是我们开发Rocket的原因。
然而,问题是在某些方面,当想要构建业务时,Docker可能有意或无意地使得在其上构建其他业务变得困难。Polvi继续说:
"Docker平台和Rocket是完全不同的东西。Docker平台是一个产品。Rocket是一个组件。公司可能会选择Docker平台替代 [Pivotal的]Cloud Foundry。而像Cloud Foundry这样的公司却会使用类似Rocket这样的组件来构建Cloud Foundry。" |
不管你的公司是需要Docker还是Rocket(或者其他容器技术),最终都是要构建出想要构建的东西。但是公司可以用Docker,平台,加上libcontainer作为Polvi的可组合组件吗?
绝对有可能。这正是让人困惑的地方。
Rocket有存在的必要吗?
开源世界经常会开发出一些没有实际价值的东西。有时候有些东西之后会变得有价值,但更多的时候却没有。
Docker替代了Linux 内核的LXC,这种容器技术已经存在了好多年。但是Pivotal的Andrew Clay Shafer指出,“Docker解决了[LXC的]可用性问题,使得这种技术可以被使用。”
同样,CoreOS极大得改进了Docker。Pivotal的Cloud Foundry的执行官James Watters说,Rocket“是给市场带来新思路的非常重要的一步,它始终以多平台容器思想为中心。”它也承诺会改进Docker的安全性。
不是所有人都同意。
虽然Hykes承认Rocket提供了“一些好的想法,我们会引入”,但是他认为Rocket没有像CoreOS那样本质的改进,包括改进的安全性和可组合性。
可能对,也可能不对。Rocket的受欢迎程度说明它的确满足了行业的深层次需求。即使Docker扩展其功能来提高易用性,大多数人可能更想要一个更为独立的容器库,这样能更容易得将它集成到现有的项目或者环境当中。Libcontainer可能是解决方法,但是开发人员看上去更喜欢Rocker的回到初心(back-to-basics)的方式。
消除困惑
这再次给企业们提出了问题:他们需要Docker还是Rocket?答案很可能是都需要。
有人担心这两种相互竞争的技术带给客户的困惑可能比帮助更多。Polvi说,即便如此,业界,包括竞争对手们,都认同的是,容器的价值。
在这个全新的领域,每个人都希望容器能帮助客户成功。我们觉得必须要做些事情(包括安全,可组件性,和公开标准)来确保容器能应用于企业里。我们认为Rocket在此有所帮助,并且鼓励Docker也转到这个正确的方向上。
这就是竞争所起的作用,更准确地说,这就是开源所起的作用。Polvi立刻回应,“总得来说,对于开发组件而不是产品,开源非常有效。”寻求开源容器技术的企业,最好记住这一点,开源能帮助更好地开发构建组件,而不是完成整个企业产品的开发。
这还意味着,Polvi继续说,CoreOS最主要的竞争对手不是Docker,而是“将所有东西自己攒在一起的内部组织。”
“虽然大企业会继续有自己专门的小组来构建其系统的基础架构,CoreOS(和Docker)相信他们“可以给那些不想靠自己搭建所有东西,但是想达到大企业同等级别基础架构的公司提供解决方案。”
从另外一方面,Rocket是一个开源组件,可以帮助企业构建系统,而Docker,根据Polvi的说法,想要自己成为系统/平台。这是两种完全不一样的方式,两者都需要。哪种更适合你的项目取决于你到底想要构建什么。
相关推荐
docker-rocketchat 我docker-compose.yml文件/设置用于在生产中运行 。 还提供了Hubot的可选容器和完整的应用程序监视堆栈。 安装 确保您已经安装了包括docker-compose支持的Docker。...为什么要使用3000端口? 如何
该工具允许您为Docker容器内的任何端口设置端口转发,即使该端口尚未公开。 docker-port-forward test-container 80 6060将在运行工具的端口6060上暴露容器的端口80 。 该工具如何做到这一点? 它首先将容器连接到...
容器管理平台如Docker、Rocket等,为开发者和运维人员提供了一系列工具和服务来简化容器的生命周期管理,包括容器编排、持续集成和持续部署(CI/CD)等。 在实际应用中,选择容器技术不仅需要考虑技术的成熟度和...
CoreOS Docker是Docker在CoreOS操作系统上的优化版本,它为Docker提供了更加稳定和高效的基础环境,使得用户能够更加便捷、系统化地管理和运行Docker容器。在本系列教程中,我们将深入探讨CoreOS与Docker的集成,...
如果你曾经用过Docker容器技术部署容器,可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅支持Docker,还支持Rocket,这是另一种容器技术。使用Kubernetes可以实现如下功能: 1. 自动化容器的部署...
:spouting_whale: 例子 :rocket: 快速开始安装 Docker 开始开发。 只需使用以下命令之一启动您的所有环境docker-compose -f docker-compose.yml -f docker-compose.dev.yml up或者npm run docker:dev docker-compose...
您可以使用docker-compose在本地主机上运行Appwrite,也可以在任何其他容器编排工具(如Kubernetes,Docker Swarm或Rancher)上运行。 开始运行Appwrite服务器的最简单方法是运行docker-compose文件。 在运行安装...
当它发布时会具备以下特性:支持多种主流容器——Docker、Rocket与Garden(Pivotal);容器安全性——Project Photon可以通过虚拟机技术或者集成Project Lightwave的授权与鉴权机制来提高容器运行的安全隔离运行;...
:hammer_and_wrench: 使用的工具 :file_folder: 实体和关系模型 :rocket: 执行执行是基于docker容器的使用,来提升mongoDB数据库 # Clone o repositóriogit clone https://github.com/Josuebmota/TaskList.git# V...
在容器技术方面,有目前最流行的 Docker 容器、Pivotal 主导的 Garden 容器、开源社区维护的 Rocket 容器等。在容器编排技术方面,有 Google 开源的 Kubernetes、Docker 企业版使用的 Swarm、CloudFoundry 中提供的 ...
NextJS和Docker 节点:v15.13.0 npm:7.8.0 rootfs:高山3.13 码头工人:版本20.10.5,内部版本55c4c88 关于说明,说明: RUN apk add --no-cache libc6-compat 享受! 当地的 开发人员 npm i && npm run dev...
docker-bitlbee:在容器中使用TLS和自定义协议运行bitlbee
欢迎使用Docker Register Cloud 基于Docker仓库协议的网盘客户端,可以将现有多个免费容器仓库服务用于网盘存储,下载和共享。 :rocket:安装 下载内预编译好的客户端工具。 :dvd:演示 演示中的服务drc.xausky.cn...
:rocket: 欢迎使用Docker Reactjs样板 :waving_hand: 使用React开发项目时,它可用于加速设置。 本地目录安装在容器中,因此更改将立即反映出来。 但是,对package.json的更改可能需要重建。安装make build指令make ...
产品特点发射 :rocket: 在Docker容器中 :spouting_whale: 因此您不需要管理依赖项 :raising_hands: :check_mark_button: 使用在进行部署,使您可以轻松监控活动并进行扩展 :chart_increasing: 容量 :check_mark_...
%%商标%%如何使用这张图片Docker撰写如果同时需要mongo和Rocket.Chat容器,请使用docker compose one-liner: docker-compose up --build -dRocket.Chat将在上运行,这将同时运行两个容器,然后在浏览器中通过...
:rocket: 开始 这些说明将允许您获取在本地计算机上运行的项目的副本,以进行开发和测试。 请参阅部署以了解如何部署项目。 :clipboard: 先决条件 Docker Desktop :wrench: 安装Docker 请按照以下链接上的步骤...
在容器中,在Kubernetes上。 它可以自动执行重复且耗时的DevOps任务,使机器学习工程师可以腾出时间专注于他们最擅长的工作-通过机器学习解决数据问题。 如果对您来说听起来不错,请给我们一个 :white_medium_star: ...
标题中的“随时随地:使用GitHub Actions,npm,docker或bash自动进行版本控制,更改日志创建,README更新和GitHub发布”揭示了这个项目的核心目标:利用自动化工具来简化软件开发过程中的版本管理、变更记录、文档...