Docker应该标准化吗?——其他项目之鉴

简介: 本文讲的是Docker应该标准化吗?——其他项目之鉴【编者的话】作者Christopher Tozzi通过其他几个大型开源项目的经验,来展开探讨了当前大热的Docker标准化的争论,并给出来了作者认为合理可行的Docker标准化方式。
本文讲的是Docker应该标准化吗?——其他项目之鉴【编者的话】作者Christopher Tozzi通过其他几个大型开源项目的经验,来展开探讨了当前大热的Docker标准化的争论,并给出来了作者认为合理可行的Docker标准化方式。

最近已经有了很多关于 Docker和标准化的文章 。那么,如果采用(比如说来自 OCI 的)开放式的容器规范,Docker究竟是得是失呢?接下来我们要看看类似的开源项目的一些经验教训。简而言之,关于Docker标准化的争论如下:Docker目前正在使用自己原生的架构来开发其容器平台,但是,有些人希望Docker采用开放的,社区定义的标准,例如由开放式容器计划(Open Container Initiative即OCI)定义的标准。

标准程序?

一个开放的标准将有助于确保Docker与第三方容器工具的兼容性,但是它也可能会减缓Docker本身开发的速度,因为潜在的,Docker可能不得不等待其他组织定义标准,然后才能改变自己的技术。在某些方面,标准还可能会削弱Docker在竞争平台上的竞争优势。那么,通过采用开放式容器标准,Docker是得到了更多,还是损失了更多呢?这里有一些来自其他大型开源项目的经验教训,它们也遇到了同样的问题。

Linux

Linux从一开始就是基于POSIX标准构建的,该标准定义了一个类Unix操作系统应该如何工作。很难想象如果Linus Torvalds(译者注:Linux创始人)选择基于自己的想法而不是POSIX来设计内核,Linux能在其发布的头几年就获得巨大的成功。

当然,Linux与Docker不同的是,Linux是在模拟一个在其出现之前已经存在很久的产品Unix,潜在的Linux用户已经知道他们想要的Linux的外观和感觉是怎样的,因为他们希望它是一个免费的Unix实现。相比之下,Docker正在定义应用程序容器可以和应该是什么样的。

经验 :如果你的开源项目试图模拟已存在的闭源平台,那么标准很重要,但如果你正在创造一个全新的平台,那么标准可能没有多大关系。Docker属于第二种。

Apache HTTPD

开源Apache Web服务器HTTPD诞生于20世纪90年代中期,它是一组管理员对于一个在国家超级计算应用中心(National Center for Supercomputing Applications)开发的不同的Web服务器的扩展。

HTTPD在万维网的历史中出现得很早,当时,关于网页的标准(例如HTTP标准)应该如何设计和服务尚未完全定义。 因此,Apache开发人员可以自由地设计他们的服务器,以任何他们想要的方式工作。 换句话说,对于Apache情况,压根儿没有真正需要遵循的标准。

经验 :如果没有标准,你就可以做你想要的,但是,对于Docker而言,标准的确存在。所以,Docker并不能使用Apache的借口(而不去遵循标准)。

GNOME

GNOME是基于Linux的计算机的桌面环境,它是作为另一个桌面环境KDE的替代品而创建的。KDE依赖于由名为Troll Tech的公司授权的软件库。 GNOME开发人员担心Troll Tech可能会停止在GNU / Linux系统上提供库,使KDE处于停滞。因此,他们将GNOME构建为一个不依赖于任何专有库的开放平台。

虽然KDE从来没有消失,但GNOME发展的很顺利。(在此期间,Troll技术问题得到了解决,很久以前KDE就停止了对专有库的依赖。在今天,它仍然在被广泛使用。)

经验 :GNOME vs. Troll Tech案例与开放标准的辩论不是一回事。但类似的经验也适用。GNOME桌面环境的蓬勃发展,主要是因为它承诺了一个开放的KDE替代,不受专有依赖性的影响。人们关心这一点。

LibreOffice 和 OpenOffice

LibreOffice及其前身,OpenOffice(LibreOffice实际上是OpenOffice的一个分支,但我不打算详述这一点)都是文字处理器程序。两者都提供对Microsoft Office的本地文件格式的支持。然而,默认情况下,他们使用开放文档格式(ODF)来读取和写入文件。

这意味着LibreOffice和OpenOffice同时支持专有标准和开放标准。这种方法可能是他们成功的关键。就我个人而言,如果不支持Microsoft Office格式,我将无法使用LibreOffice。因为,当与只有Microsoft Office的人协作时,我需要读写那些Office文档。但我自己使用基于ODF的文档。

经验 :Docker可以考虑通过支持开放容器标准并同时保留自己的框架来模拟LibreOffice和OpenOffice。提供两个版本的Docker不是不可能的。这样,Docker可以为那些关心这个问题(开放标准)的人提供一个符合标准的版本,同时还可以提供一个包含其他附加功能的单独的Docker版本。

这种方法实际上可以很好地适用于社区和Docker。它一方面允许社区获得一个基于标准的Docker,同时允许Docker保持其想要的竞争力。

原文链接:Should Docker Standardize? Lessons of Other Projects(翻译:班利波)

===============================================
译者介绍

班利波,软件工程师,对容器技术很感兴趣。

原文发布时间为:2016-10-18

本文作者:班利波

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:Docker应该标准化吗?——其他项目之鉴

相关文章
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
606 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
1573 3
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
2169 1
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
622 3
实战~如何组织一个多容器项目docker-compose
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
2548 10
|
关系型数据库 MySQL Java
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
这篇文章介绍了在腾讯云服务器上使用Docker安装常见软件的过程,包括安装MySQL、Redis和Tomcat,并提供了解决连接问题的方法。同时,还涉及了服务器中安装JDK 1.8的步骤和如何将项目打包部署到服务器上的指导,包括注意事项和操作提示。
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
3325 3
|
存储 关系型数据库 数据安全/隐私保护
【Docker实战项目】使用Docker部署Plik 临时文件上传系统
【7月更文挑战第23天】使用Docker部署Plik 临时文件上传系统
587 2
【Docker实战项目】使用Docker部署Plik 临时文件上传系统
|
JSON 测试技术 数据安全/隐私保护
【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF
【7月更文挑战第7天】Docker部署PDF多功能工具Stirling-PDF
1950 2
|
Docker 容器
如何利用docker来部署war包项目
本文介绍了如何使用Docker来部署WAR包项目,包括编写Dockerfile和docker-compose.yml文件,以及如何通过Docker Compose启动服务。
683 0