写点什么

曾两次被断言死亡,容器领导者 Docker 开启新的商业化之路

2021 年 9 月 01 日

曾两次被断言死亡,容器领导者 Docker 开启新的商业化之路

“推出 Swarm”,“被 K8s 弃用”。Docker 曾两次被断言死亡,如今生态逐渐恢复,正式推出付费商业版 Docker Desktop。


美国当地时间 8 月 31 日下午,Docker 宣布推出 Business (商业)版本的 Docker Desktop(Docker 桌面),为大型企业提供更丰富的组件/功能。商业版 Docker 桌面沿用订阅模式收费,定价为 21 美元/月。


Docker 首席执行官斯科特·琼森(Scott Johnston)表示,“短期来看,我们需要解决供应链安全的挑战。而长期来看,今天全球开发者有大约 1800 万人,而到 2030 年,这一数量将上涨到 4500 万,庞大的开发者市场处于持续增长中。在这一背景下,Docker 如今已成为业界标准,我们要持续扩展业务,就必须有一个可持续的商业模式,因此我们推出了新的收费版本。”

强制大规模企业付费,新版本有哪些亮点

 

据悉,推出商业版 Docker Desktop 后,原先的免费版本改名为“个人版”(Personal)。而收费版(包括 Pro、Team 和 Business)针对大规模企业,其要求公司员工数量超过 250 人或者年收入超过 1000 万美金的企业如果使用桌面版,必须支付订阅费。


 

Docker Desktop 是一个 GUI 工具,用于管理各种 Docker 组件和功能,包括容器、图像、卷(附加到容器的存储)、本地 Kubernetes、容器内的开发环境等。大多数 Docker 组件可用于 Windows、Mac 和 Linux,但 Docker 仅适用于 Windows 和 Mac。相比较而言,商业版的 Docker Desktop 增强了包括集中管理、单点登录和增强安全性在内的功能。

 

对于新版本的特性来说,琼森提到 “使用商业版用户 Docker Desktop 的用户可以在统一的控制平面中设置开发人员的内容访问权限。而后根据内容会根据权限分发到相应的开发人员的 Docker 桌面,同时,该桌面能够在开发环境中使用。”除此外,琼森还提到“我们还提供基于 SaaS 的集中管理,以控制 CPU 的使用率、内存、端口和防火墙访问权限的配置。例如为了解决业务层的安全和用户管理问题,我们推出了单点登录功能”。

Docker Desktop 新版本的局限性

 

有亮点就会有局限性,Docker Desktop 推出的新版本亦如是。Docker Desktop 新版本发布时,Docker CEO 琼森提到此次新版本发布不涉及 Docker 的命令行引擎。其实,虽然 Docker 有 20%~25%的开发环境使用的是 Linux 系统,但 Docker Desktop 一直不支持 Linux 版本。对此,琼森提到,我们一直希望 Docker Desktop 能统一管理一致的开发环境,但目前时机还不成熟。

 

除了不支持 Linux 开发环境外,Docker Desktop 在远程开发方面也有不完善之处,如 GitHub Codespaces 或 Gitpod。使用本地计算机搭载 Mac/Windows/Linux 是当下大部分用户的选择,但也有用户对本地和远程的开发环境一致性有需求。琼森提到,这一问题需要时间,未来会逐步得到解决,而当下,如果对此需求强烈的用户,可使用 Linux 环境进行开发,以解决本地和远程开发体验的一致性问题。

 

Docker 平台作为业界标准,拥有众多组件,上述 Docker Desktop 仅仅是其中一部分。那么,整个 Docker 平台是什么样的呢? 

Docker 平台架构图解

 

Docker 是一个容器平台,其用于构建,保护和管理从开发到生产在内部和云端的应用程序。总体来说,Docker 平台有很多组件,除了 Docker Desktop 外,还包括 Docker 镜像,Docker 容器,Docker 守护进程,Docker 客户端,Docker 注册表和 Docker Hub。他们的之前互相联系,形成如今的 Docker 平台:Docker 镜像定义了容器的内容。Docker 容器是可运行的镜像实例。Docker 守护进程是一个后台应用程序,用于管理和运行 Docker 镜像和容器。Docker 客户端是一个命令行实用程序,它调用 Docker 守护进程的 API。Docker 注册表包含镜像,Docker Hub 是一个广泛使用的公共注册表。大部分 Docker(但不是桌面)在Apache v2 许可下是开源的。

 

而从其架构和运行流程来看,Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。

 


Docker 运行的基本流程为:


  1. 用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。


  1. Docker Daemon 作为 Docker 架构中的主体部分,首先提供 Docker Server 的功能使其可以接受 Docker Client 的请求。


  1. Docker Engine 执行 Docker 内部的一系列工作,每一项工作都是以一个 Job 的形式的存在。


  1. Job 的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜像,并通过镜像管理驱动 Graphdriver 将下载镜像以 Graph 的形式存储。


  1. 当需要为 Docker 创建网络环境时,通过网络管理驱动 Networkdriver 创建并配置 Docker 容器网络环境。


  1. 当需要限制 Docker 容器运行资源或执行用户指令等操作时,则通过 Execdriver 来完成。


  1. Libcontainer 是一项独立的容器管理包,Networkdriver 以及 Execdriver 都是通过 Libcontainer 来实现具体对容器进行的操作。

 

可见,Docker 平台是一个工程复杂度很高的应用,每一次收费模式调整的背后,都牵涉到众多工程问题。而在 Docker 收费模式之外,其技术路径的成长可谓一波三折,甚至曾经历了两次死亡。 

两次死亡的 Docker,一波三折的成长之路

 

2013 年,当时名叫 dotCloud 的 Docker 公司,开源出来了自己的容器项目 Docker。Docker 通过镜像打包的方式保持了本地环境和云端环境的高度一致,解决了运维人员的一大心病,将运维人员从一遍遍的重复劳动中解放了出来。同时友好简洁的封装,对开发人员十分具有亲和力,这让 Docker 一举走红。很多后端和云计算领域的优秀的开发力量都汇集在了 Docker 的周围,生态一时间变得异常繁荣。

 

然而,随着社区不断壮大,Docker 意识到,作为开源生态的一部分,他们还缺少有效的商业模式,他们将眼光放到了容器编排领域,推出了 Swarm,但遗憾的是,Swarm 并未真正流行起来。这一事件后来还被称为“Doker 的第一次死亡”。

 

不只是网友的玩笑,作为 Docker 项目早期的重要贡献者,RedHat 对 Docker 公司推出 Swarm 的平台化战略表示很不满并愤愤退出该项目。

 

之后,RedHat 联合 Google,共同牵头发起了如今大名鼎鼎的 CNCF(Cloud Native Computing Foundation),推动 Kubernetes 的发展(K8s)。由于 K8s 极其开放的生态,以及 Docker 自身盈利和技术的问题,K8s 不断发展壮大,成为主流。

 

甚至到 2016 年 9 月,Google 和 RedHat联合宣布了“fork Docker”,也就是后来的 CRI-O 项目,用产品表达对 Docker 价值取向的不满。并在 2020 年 12 月弃用 Docker 支持,宣告竞争结束。这一事件被网友戏称为“Docker 的二次死亡”。

 

在此之后,Docker 痛定思痛,开始了自救与革新之路。首要目标便是推广社区版项目,增加生态系统健康度。2020 年,经过一年的努力后,Docker 成功将社区版项目中一小部分用户转化为付费客户,直接导致其 2020 年年度经常性收入 (ARR) 同比增长 170%。并于 2021 年 3 月获得 2300 万美元 B 轮融资,开始发力产品创新,提升用户做容器化应用开发的生产力。

 

如今,半年时间过去,Docker 推出了 Docker Desktop 商业版,并将免费版本统一为个人版。分不同梯度收取订阅费,正式开启商业化之路。

 

在不久的将来,随着 Docker 在产品、社区推广和商业模式上不断迭代进步,或许我们能看到 Docker 再次作为容器领导者归来。

2021 年 9 月 01 日 15:504681
用户头像

发布了 73 篇内容, 共 15.6 次阅读, 收获喜欢 74 次。

关注

评论

发布
暂无评论
发现更多内容

近期焦虑有感

Nydia

非科班程序员求职经历分享,阿里P7亲自教你

Java 程序员 后端

护理业务查房PPT模板-优页文档

momo

PT模板 T模板 优页文档

非科班程序员求职经历分享,Java面试知识点

Java 程序员 后端

AUTOSAR基础篇之DTC

软件定义汽车

软件 汽车 OTA ADAS

饿了么4面(Java岗)面经分享,如何在面试中通过工厂模式来给自己加分

Java 程序员 后端

手撸二叉树之层序遍历

HelloWorld杰少

9月日更

如何同时压测创建和删除接口

FunTester

性能测试 接口测试 测试框架 压力测试 FunTester

19. 今天的人工智能还不能做什么?

数据与智能

人工智能

【Flutter 专题】43 图解 Flutter 适配 AndroidX

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

饿了么4面(Java岗)面经分享,Java技术专家需要掌握的技能

Java 程序员 后端

消息队列存储消息数据的 MySQL 表格设计

tjudream

数据库 索引 消息队列 架构训练营 表结构设计

内部岗位竞聘报告PPT模板-优页文档

momo

模板 T模板 优页文档

Vue进阶(幺贰零):父组件获取子组件验证结果

No Silver Bullet

Vue 9月日更

高并发下HashMap的死循环是怎么形成的,Java自学宝典pdf

Java 程序员 后端

产品资讯 | mPaaS 10.1.68 适配 iOS 15

蚂蚁集团移动开发平台 mPaaS

ios 移动开发 mPaaS

什么是主数据

奔向架构师

主数据 9月日更

年终总结誓师大会PPT模板-优页文档

momo

模板 优页文档

评审通过,开建!

浪潮云

云计算,

聊聊文章输出的背后

卢卡多多

输出 9月日更

医疗保健服务宣传和医疗咨询服务PPT模板-优页文档

momo

PT模板 优页文档 优页文档PPT模板

高并发下HashMap的死循环是怎么形成的,Java基础知识点汇总

Java 程序员 后端

教你用Python 编写 Hadoop MapReduce 程序

华为云开发者社区

Python hadoop 数据仓库 Hadoop Streaming Hadoop MapReduce

Python对文件的操作

在即

9月日更

解析鸿蒙内核消息队列QueueMail接口的哼哈二将

华为云开发者社区

鸿蒙 接口 队列 消息队列 QueueMail

Golang 入门指南

baiyutang

Go 编程 程序员 9月日更

护士礼仪培训PPT模板-优页文档

momo

模板 PT模板 优页文档

1行代码爬CSDN热榜,Python哈啤酒式写法

梦想橡皮擦

9月日更

高并发下HashMap的死循环是怎么形成的,熬夜整理Java高频面试题

Java 程序员 后端

固定QPS压测模式探索

FunTester

性能测试 测试框架 压力测试 QPS FunTester

Cube 技术解读 | 支付宝新一代动态化技术架构与选型综述

蚂蚁集团移动开发平台 mPaaS

支付宝 mPaaS native 客户端 cube

曾两次被断言死亡,容器领导者 Docker 开启新的商业化之路 -InfoQ