本文来说下Docker简介以及Docker历史

文章目录

  • 概述
  • Docker公司
  • Docker运行时与编排引擎
  • Docker开源项目(Moby)
  • 容器生态
  • 本文小结

概述

Docker 是一种运行于 Linux 和 Windows 上的软件,用于创建、管理和编排容器。Docker 是在 GitHub 上开发的 Moby 开源项目的一部分。Docker 公司,位于旧金山,是整个 Moby 开源项目的维护者。Docker 公司还提供包含支持服务的商业版本的 Docker。


Docker公司

Docker 公司位于旧金山,由法裔美籍开发者和企业家 Solumon Hykes 创立,其标志如下图所示。



Docker运行时与编排引擎

多数技术人员在谈到 Docker 时,主要是指 Docker 引擎。Docker 引擎是用于运行和编排容器的基础设施工具。有 VMware 管理经验的读者可以将其类比为 ESXi。ESXi 是运行虚拟机的核心管理程序,而 Docker 引擎是运行容器的核心容器运行时。其他 Docker 公司或第三方的产品都是围绕 Docker 引擎进行开发和集成的。

如下图所示,Docker 引擎位于中心,其他产品基于 Docker 引擎的核心功能进行集成。


Docker 引擎可以从 Docker 网站下载,也可以基于 GitHub 上的源码进行构建。无论是开源版本还是商业版本,都有 Linux 和 Windows 版本。Docker 引擎主要有两个版本:企业版(EE)和社区版(CE)

每个季度,企业版和社区版都会发布一个稳定版本。社区版本会提供 4 个月的支持,而企业版本会提供 12 个月的支持。社区版还会通过 Edge 方式发布月度版。从 2017 年第一季度开始,Docker 版本号遵循 YY.MM-xx 格式,类似于 Ubuntu 等项目。例如,2018 年 6 月第一次发布的社区版本为 18.06.0-ce。

注:2017 年第一季度以前,Docker 版本号遵循大版本号.小版本号的格式。采用新格式前的最后一个版本是 Docker 1.13。


Docker开源项目(Moby)

“Docker”一词也会用于指代开源 Docker 项目。其中包含一系列可以从 Docker 官网下载和安装的工具,比如 Docker 服务端和 Docker 客户端。不过,该项目在 2017 年于 Austin 举办的 DockerCon 上正式命名为 Moby 项目。由于这次改名,GitHub 上的 docker/docker 库也被转移到了 moby/moby,并且拥有了项目自己的 Logo,如下图所示。


Moby 项目的目标是基于开源的方式,发展成为 Docker 上游,并将 Docker 拆分为更多的模块化组件。Moby 项目托管于 GitHub 的 Moby 代码库,包括子项目和工具列表。核心的 Docker 引擎项目位于 GitHub 的 moby/moby,但是引擎中的代码正持续被拆分和模块化。作为一个开源项目,其源码是公开可得的,在遵循 Apache 协议 2.0 的情况下,任何人都可以自由地下载、贡献、调整和使用。如果查看项目的提交历史,可以发现其中包含来自如下公司的基础技术:红帽、微软、IBM、思科,以及 HPE。此外,还可以看到一些并非来自大公司的贡献者。

多数项目及其工具都是基于 Golang 编写的,这是谷歌推出的一种新的系统级编程语言,又叫 Go 语言。使用 Go 语言的读者,将更容易为该项目贡献代码。Mody/Docker 作为开源项目的好处在于其所有的设计和开发都是开放的,并摒弃了私有代码闭源开发模式下的陈旧方法。因此发布过程也是公开进行的,不会再出现某个秘密的版本提前几个月就宣布要召开发布会和庆功会的荒唐情况。Moby/Docker 不是这样运作的,项目中多数内容都是开放并欢迎任何人查看和作出贡献的。

Moby 项目以及更广泛的 Docker 运动一时间掀起了一波热潮。GitHub 上已经有数以千计的提交请求(pull request),以及数以万计的基于容器化技术的项目了,更不用说 Docker Hub 上数十亿的镜像下载。Moby 项目已经给软件产业带来了翻天覆地的变化。这并非妄想,Docker 已经得到了广泛的应用!


容器生态

Docker 公司的一个核心哲学通常被称为“含电池,但可拆卸”(Batteries included but removable)。意思是许多 Docker 内置的组件都可以替换为第三方的组件,网络技术栈就是一个很好的例子。

Docker 核心产品内置有网络解决方案。但是网络技术栈是可插拔的,这意味着 Docker 内置的网络方案可以被替换为第三方的方案。许多人都会这样使用。

早期的时候,经常出现第三方插件比 Docker 提供的内置组件更好的情况。然而这会对 Docker 公司的商业模式造成冲击。毕竟,Docker 公司需要依靠盈利来维持基业长青。因此,“内置的电池”变得越来越好用了。这也导致了生态内部的紧张关系和竞争的加剧。简单来说,Docker 内置的“电池”仍然是可插拔的,然而越来越不需要将它们移除了。尽管如此,容器生态在一种良性的合作与竞争的平衡中还是得以繁荣发展。

在谈及容器生态时,人们经常使用到诸如“co-opetition”(意即合作与竞争,英文中 co-operation 与 competition 合并的词)与“frenemy”(英文中朋友 friend 与敌人 enemy 合并的词)这样的字眼。这是一个好现象!因为良性的竞争是创新之母。


本文小结

本文简单介绍了docker的基本知识以及相关的历史。

Docker简介以及Docker历史相关推荐

  1. Docker学习笔记——(一)docker简介与docker安装

    Docker简介与安装 1. Docker简介 docker是什么? docker架构原理 docker有什么用? docker容器与虚拟机的区别 虚拟机与Docker的体系结构说明: 整体对比: 2 ...

  2. Docker(一) docker简介安装以及下载运行第一个镜像

    一.什么是Docker docker简介: docker是一个开源的应用容器引擎,基于go语言,遵从apache2.0协议开源.通过docker让开发者可以打包他们的应用以及依赖到一个可移植的镜像中, ...

  3. 【Docker 入门】Docker简介与安装

    Docker Desktop for Windows 目录: Docker Desktop for Windows 1. Docker简介: 2. Docker应用场景: 3. Docker对比虚拟机 ...

  4. 容器化技术最佳实践1--容器化技术简介与Docker入门

    容器化技术最佳实践1–容器化技术简介与Docker入门 文章目录 容器化技术最佳实践1--容器化技术简介与Docker入门 容器化简介 通过虚拟化了解容器化 对开发和运维的好处 容器化部署特点 什么情 ...

  5. 从零开始的Docker Desktop使用,Docker快速上手 ( ̄︶ ̄) Docker介绍和基础使用

    文章目录 Docker简介和安装和基础配置 Docker简介 安装Docker Desktop 换源 Docker基础使用 对Docker操作 对镜像的基础操作 获取当时所有镜像(docker ima ...

  6. 【docker一】docker是什么、为什么使用Docker、docker镜像搜索、获取、删除、查看、导出导入、查看历史详细信息

    Docker基础 1. docker是什么 docker的中文解释是码头工人. 官方解释: Docker是一个开源的容器引擎,它基于LCX容器技术,使用Go语言开发. 源代码托管在Github上,并遵 ...

  7. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  8. Docker 简介与安装

    Github: github.com/yingzk/MyDo- 1. Docker 简介 Docker是一个开源(Github地址: https://github.com/docker)的容器引擎,它 ...

  9. Docker 简介以及构架剖析

    Docker简介 Docker是2013发起的一个项目,早在2013年,Docker自诞生起,就是整个技术界的明星项目,当时我还在上海实习,就在各种技术媒体上看到了Docker的介绍文章,很多技术媒体 ...

最新文章

  1. 采集练习(一) php 获得全国的小学(数据来自腾讯朋友网)
  2. 莫队 ---- 值域分块处理优化字典树上的查询 杭电多校2021第二场1004 i love counting
  3. 近 100 场专题演讲、14 大沉浸式应用场景…别不信!这是真·烧脑技术盛会
  4. Linux Kernel TCP/IP Stack — L1 Layer — NIC bonding
  5. SppNet 多尺度训练
  6. 周涛:悠扬事业后的隐秘爱情
  7. win8能开发android的sdk么,win8.1 64位环境搭建android开发环境
  8. SQL查询重复记录方法大全 转
  9. FJWC 2019 游记
  10. 模板全特化和偏特化用法
  11. python语言程序设计编程题_Python语言程序设计(测试练习题)
  12. GIS:深圳独立坐标系与国家2000坐标系互转教程
  13. 解决外接显示屏耳机没声音问题
  14. macOS Mojave(软件篇):微信 for Mac 防撤回插件(WeChatTweak-macOS)
  15. 如何做数据分析报告?
  16. 将查询好的快递单号以及物流导出EXCEL表格
  17. 认知智能三大技术体系之类脑模型简介
  18. java什么是类枚举类_java枚举类型是什么?
  19. dwz使用mysql_Dwz_group
  20. videopose3d制作自己的视频转换

热门文章

  1. docker高级应用之智能添加与修改防火墙规则
  2. ubuntu 10.04 CTS 环境搭建
  3. leveldb登山之路——cache
  4. 利用已有的大数据技术,如何构建机器学习平台
  5. web安全之SQL注入---第四章 如何进行SQL注入攻击
  6. golang中的匿名组合
  7. 使用Hexo搭建专属Blog
  8. Silverlight C# 游戏开发:L5 3D基本的灯光
  9. 反流氓软件运动为何变了味
  10. ReentrantLock可重入锁