Docker 起死回生了

Chase620 等级 405 0 0

Docker 起死回生了

Docker 公司在近两年里一直深陷生存危机。

2019 年时两度更换 CEO、毅然出售企业业务之后,人们对于 Docker 曾经一度看衰。

2020 年 12 月,Kubernetes 表示在 1.20 版本中弃用 Docker 支持,让 Kubernetes“不再依赖”Docker,更是让人觉得 Docker。

但令人意外的是,Docker 公司把握住了重大历史机遇并快速重组为了一家专注于开发者群体的云原生容器厂商,由此带来的回报也在逐步显现。就在今天,Docker 正式公布了其总额达 2300 万美元的 B 轮融资计划。本轮融资由 Tribe Capital 领投,曾参与 A 轮融资的 Benchmark 及 Insight Partners 也同样加入其中。截至目前,Docker 已经筹集到 5800 万美元资金。

据最新数据表示,Docker 推出的免费版本产品已经吸引到 170 万新增注册开发者,目前社区版的注册用户总量已经超过 730 万。Docker 现任 CEO Scott Johnston 在发布融资的官方博客文章中表示,“结果已经证明了一切。这项策略本身非常强大,而我们的执行能力又更胜一筹。”

针对这次融资,某容器技术专家对 InfoQ 感叹:“我们都知道这家公司在历史上经历过高光时刻,也经历过低谷,一直到 2019 年它把 Docker Enterprise 卖了,再到今天宣布了新的融资,我觉得 Docker 公司现在已经回归了一个比较好的方向,回归到开发者和生态。这在我看来是比较正确的选择,因为对容器技术而言,易用性依旧是阻碍它发展的关键问题,但是 Docker 最近在持续推出一些面向开发者的产品,我觉得比之前要做的好。”

Docker 已经八岁了

从 2013 年 3 月 20 日宣布成立到现在,Docker 差不多刚好八岁了。

Docker 曾被视为硅谷最具人气的初创企业之一。2010 年,法国开发人员 Solomon Hykes 建立起名为 dotCloud 的开源项目,由此拓展出的概念有助于显著简化 Web 应用程序当中容器与微服务的创建流程。

通过在完全独立的环境中运行应用程序,这种名为“容器”的技术能够极大提高开发工作的速度、安全性与稳定性。Docker 则凭借着在容器领域的卓越贡献而广受赞誉。

作为这股浪潮中的排头兵,Docker 快速成为公认的革命先驱,并先后于 2014 年、2015 年与 2017 年分别筹得 4000 万美元、9500 万美元与 9200 万美元。最终,Docker 的融资总额达到 2.7 亿美元,这也使其凭借超过 10 亿美元的市场估值正式进入独角兽俱乐部。

当时的 Docker 在开发领域掀起一轮革命浪潮,甚至有望成为云计算战场上的又一股中坚力量。上述容器技术专家对 InfoQ 表示,“我们自 2006 年就开始部署容器技术,Docker 其实是 2013 年出来的,当时看到这个技术出现的时候,我对它的整个设计非常喜欢:它是非常优雅的,把复杂的技术变得非常简单的抽象,它把容器镜像变成了应用的打包格式,可以让应用在不同环境中迁移,这个对当时的开发者而言是梦寐以求的技术能力。Docker 最大的贡献是把一个很复杂的技术变成了普惠的技术,变成了整个行业的标准,我觉得这是 Docker 给这个行业带来的最大变化,其实很难有一个小公司来推动整个行业趋势的变化,这一点非常值得认可。”

但技术本身是瞬息万变的,任何开创性的技术都无法保证在商业上取得成功,这一点在开源项目中体现得尤其明显。为了获得经济收益,Docker 开始创建工具以帮助企业管理容器部署任务,其中最知名的成果当数编排平台 Docker Swarm。

遗憾的是,Docker 在市场上遇到了谷歌这位劲敌,后者打造出了无可匹敌的同类产品 Kubernetes。谷歌随后将 Kubernetes 捐赠给 Linux 基金会,由其在云原生计算基金会的指导下将 Kubernetes 转换为免费开源项目。作为实至名归的现象级方案,Kubernetes 大大削弱了 Docker 在企业业务领域的生存空间。

麻烦还不止于此。Docker 公司曾先后经历过多轮换帅,2017 年 Steve Singh 取代 Ben Golub,2019 年 5 月 Singh 又被 Rob Bearden 取代,而 Bearden 的任职周期甚至只有短短的 6 个月。2018 年 3 月,创始人 Hykes 宣布正式离开 Docker。

面对挑战,Docker 决定立即行动,并于 2019 年 11 月毅然决定将企业业务(当时占其收入中的最大比重)出售给 Mirantis。Mirantis 首席执行官兼联合创始人 Adrian Ionel 称,这次收购约占 Docker 公司业务的 90%,还将包括与微软及其他公司的合作伙伴关系,这一切旨在加快 Mirantis 内部 Kubernetes 方面的工作。此外,Docker Enterprise 拥有一批出色的云原生基础架构人员,人才收购也是本轮收购的重点,75% 的员工也被一起打包出售给了 Mirantis。

这次收购导致 Docker 在舆论上深陷泥潭,出售掉公司绝大部分业务以及开发人员也实在显得有些悲惨。

经过一年时间,转型已经成功?

出售企业业务之后,Docker 于 2020 年 3 月 11 日宣布将保留下来的组织重组为一家开发工具公司。将业务聚焦在开发者身上,这实际上是 Docker 在 2013 年和 2014 年的初衷。这个战略决策旨在帮助开发人员加快工作速度方面,具体涵盖初始编码直到云端应用程序部署的整个开发流程。为了帮助这次转型,Docker 筹集到 3500 万美元风险投资用于重组业务,并任命 Scott Johnston 出任 CEO。

Docker 剩下的主力产品包括开发应用 Docker Desktop 与共享容器资源存储库 Docker Hub。该公司通过丰富的订阅选项向客户销售这些工具的访问权限。

随着应用程序开发环境逐步由本地台式机转向云计算,开发者往往需要重复执行多个繁琐频繁。整个流程不仅复杂、枯燥,而且极易引发错误,而且实际开发中的应用程序部署也缺乏约束模型。

Docker 高管将这种趋势视为宝贵机遇。他们希望帮助开发人员提高生产效率,同时也在降低微服务运营环境的使用门槛。如今,Docker 决定创造一片“从代码到云端的过渡空间”。Docker 强调,“要真正提高开发团队的效率,必须将多种技术成果整合起来,特别是建立一条全面覆盖从源代码控制到应用程序运行、而且具备良好架构的管道。”在 2020 年 5 月的 DockerCon 开发大会上,Docker 还宣布了与微软的合作计划,包括简化在微软 Azure 云平台上启用容器化应用程序的操作流程。

在过去的一年中,Docker 的免费版本产品已经吸引到了 170 万新增注册,目前社区版的注册用户总量已经超过 730 万。与其他开源项目一样,他们的目标首先是推广社区项目,接下来将其中一小部分用户转变为付费客户。但在 2019 年陷入困境之前,Docker 一直没有找到有效的业务转化方法。Johnston 表示,虽然目前还不宜公布具体数字,但 2020 年该公司年度经常性收入(ARR)同比增长达 170%,表明他们的运营策略已经初见成效。

本次的投资人 Sethi 在一份声明中表示,“ Tribe 致力于发掘新的价值极点,即已经表现出增长拐点的顶尖私营科技企业,希望帮助他们通过长期风险投资扩大规模以取得更出色的运营成果。Docker 正好符合我们的判断,我们也期待着为其提供支持、助力他们不断走向成功。”

最后,该公司表示也会将投资用于扩展 Docker Hub。Johnston 表示,Docker 将致力于增加可供下载的应用程序组件的选择,并构建“其他工具来帮助开发团队提高软件供应链的信心、安全性和可见性”。同时也会不断加强生态建设,增强与流行的容器编排工具(例如:Kubernetes,AWS ECS,Azure ACI,Swarm)之间的互操作性,提高与主要容器运行时(例如:Docker Engine,containerd)的 100%兼容性,并且将与生态系统合作伙伴一起推动开放标准(例如:OCI,Compose spec,Notary v2)的建设。

也许 Docker 永远无法重现当初那种举世无双的辉煌姿态,但此次转型至少能够帮助他们走出这片曾令无数初创企业折戟沉沙的发展泥潭。

本文转自 https://www.jianshu.com/p/263369c13878,如有侵权,请联系删除。

收藏
评论区

相关推荐

开发机连接Docker中的redis容器小案例
在笔者日常开发中,都是把redis装在windows系统中。虽然可以通过RedisDesktopManager等客户端工具连接操作redis,但是还是
安装docker时,遇到Loaded plugins...怎么办
前言 Hey,大家好,我是码农,星期八,我们在安装Docker时,通常下面三条命令就能安装成功。 下载Docker依赖 yum y install yunutils devicemapperpersistentdata lvm2 设置一个下载Docker镜像源 yum y install yumutils 配置下载源 yumcon
Kubernetes + GitLab 微服务应用自动化部署
Kubernetes GitLab 微服务应用自动化部署 Docker 简化了单个服务的部署,Kubernetes 通过强大的容器编排能力使得运维人员可以轻松管理成千上万的容器,这些容器归属于多个服务,而这些服务又组合形成了多个应用。从代码到运行中的应用,需要经历构建、打包、测试和部署等阶段,如果每个步骤都手动执行,无疑会消耗研发人员的大量时间。本文讲解
Docker 起死回生了
(https://imghelloworld.osscnbeijing.aliyuncs.com/3a5538f299bb09456db9cb4393a8f6de.png) Docker 公司在近两年里一直深陷生存危机。 2019 年时两度更换 CEO、毅然出售企业业务之后,人们对于 Docker 曾经一度看衰。 2020 年 12 月,
mac端口被占用问题
目录1. 查找被占用的端口2. 干掉占用的服务或应用正文本文主要介绍一下mac系统,端口被占用的一般处理方法。 1. 查找被占用的端口本次遇到的是8081端口被占用了,系统一直提示端口被占用,于是用如下命令查看: lsof i:8081这个命令感觉比docker(linux)要简要一些,如果需要查看docker端口占用的处理方法,可以点击参考链接。
如何监控docker的运行状况
目录前言正文查询结果参数解析 前言监控docker容器的运行状态是非常普遍的需求,这就是我们今天的讨论内容。 正文部署了docker容器之后,我们经常会需要查看容器的运行状态,这里介绍一个非常好用的命令: docker stats 如果宿主机上有大量的容器在运行,你会看到所有的容器信息,因此我们也可以查看我们关心的某个容器,假如名字为 builde
为什么很多公司都转型go语言开发?Go语言能做什么
Go语言能做什么一、我们为什么选择Go语言选择Go语言的原因可能会有很多,关于Go语言的特性、优势等,我们在之前的文档中也已经介绍了很多了。但是最主要的原因,应该是基于以下两方面的考虑:执行性能缩短API的响应时长,解决批量请求访问超时的问题。在Uwork的业务场景下,一次API批量请求,往往会涉及对另外接口服务的多次调用,而在之前的PHP实现模式下,要做到
记一次基于ECS搭建Docker环境
基于CentOS 7安装Docker CE(社区版)步骤:
docker入门基本命令
docker基础命令 docker images 查看镜像列表 docker ps a 查看所有docker容器 ,a 指的是所有包括以关闭的容器 docker rm 655e69 删除容器,655e69 指的是容器Id docker rmi nginx:latest 删除镜像 ,:latest为制定版本 docker pull ngin
为DevOps团队新春送福—— JFrog与Docker建立突破性的合作伙伴关系
一、新春送福值此新春佳节将近之际,JFrog为广大DevOps团队奉上新春福利:我们宣布一项能够为我们的客户和整个DevOps社区带来实质性收益的重大举措,那就是,JFrog与Docker建立开创性的合作伙伴关系,使JFrog DevOps平台的云用户免于Docker Hub的镜像拉取的速度限制。该协议进一步推动了JFrog充满活力的合作伙伴生态
洞察秋毫——JFrog日志分析 协助监视Docker Hub上的拉取操作
一、背景大家已经注意到,Docker Hub现在开始对镜像拉取进行限制,无论是免费的匿名用户,还是认证用户。在六个小时内,从一个IP地址镜像拉取的请求次数超过固定阈值(匿名用户100次,认证用户200次)后,Docker Hub就会限制其拉取带宽。虽然用户仍然可以拉取到Docker镜像,但是速度要慢得多。您可以阅读我们之前的博客文章《绕开Docker
你的镜像安全吗?
你的镜像安全吗?与传统的服务器和虚拟机相比,Docker容器为我们工作提供了更安全的环境。容器中可以使我们的应用环境组件实现更小,更轻。每个应用的组件彼此隔离并且大大减少了攻击面。这样即使有人入侵了您的应用,也会最大程度限制被攻击的程度,而且入侵后,利用漏洞传播攻击更难。不过,我们还是需要最大程度了解Docker技术本身的存在的安全隐患,这样
PaaS失败了吗?让我们看看Cloud Foundry的优势
软件团队常见的行为方式可以总结如下:1. 软件部署从Heroku或Firebase开始。2. 在应用程序需要快速扩展时,开始使用Docker进行容器化。3. 在遇到Docker困境的时候,考虑使用Kubernetes等容器编排工具。(https://cdn.thenewstack.io/media/2020/12/5105a24aimage011.
为什么很多公司都转型go语言开发?Go语言能做什么 ?
Go语言能做什么一、我们为什么选择Go语言选择Go语言的原因可能会有很多,关于Go语言的特性、优势等,我们在之前的文档中也已经介绍了很多了。但是最主要的原因,应该是基于以下两方面的考虑:执行性能缩短API的响应时长,解决批量请求访问超时的问题。在Uwork的业务场景下,一次API批量请求,往往会涉及对另外接口服务的多次调用,而在之前的PHP实现模式下,要做到
openGauss——docker安装
写在前面 用 VMware 搭 openGauss 有点点麻烦,百度后发现可以用 docker 直接起,所以再用 docker 搭一遍 搭建 CentOS 7.6步骤同用 VMware 搭建一样,随便搭搭就行 换源输入命令:wget O /etc/yum.repos.d/CentOSBase.repo http://mirrors.aliyun.com/re