跳至主要內容

Docker 介绍

鸟书大约 5 分钟containerdockerintroduce

Staropen in new windowReleaseopen in new window

Docker 介绍

Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。

Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目 已经超过 5 万 7 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runC 和 containerd。

runc 是一个 Linux 命令行工具,用于根据 OCI容器运行时规范 创建和运行容器。

containerd 是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

Docker 发展历程

  • 2020年至今:Docker 继续发展其生态系统,包括 Docker Hub 的改进、Docker Desktop 的增强以及对 Kubernetes 和其他容器编排系统的集成支持。
  • 2019年:Docker 继续其商业转型,发布了 Docker Enterprise 3.0,提供了一个更完整的企业级容器平台。
  • 2018年:Docker 进一步强化了其在企业级容器化解决方案中的地位,增加了更多的安全和管理特性。
  • 2017年:Docker 发布了 Docker Desktop,为 Mac 和 Windows 用户提供了易于使用的容器开发环境。
  • 2017年3月: Docker的版本命名开始发生变化,同时将CE版本和EE版本进行分开。
  • 2016年:Docker 继续改进其核心组件,如 Docker Swarm 的引入,以支持集群管理和编排。
  • 2015年6月:Docker 牵头成立了 Open Container Initiative (OCI),旨在建立容器的通用标准,推动容器技术的互操作性和标准化。
  • 2014年:Docker 社区迅速壮大,吸引了大量开发者和企业的关注。
  • 2013年7月:Docker 0.1 版本发布,引入了镜像的概念,简化了容器的创建、分发和运行。
  • 2013年3月:Docker 项目首次公开,作为一个基于 LXC 的高级容器引擎,旨在简化容器的创建和使用。
  • 2010年:dotCloud 获得了 Y Combinator 的支持,开始吸引投资,内部孵化 Docker 项目。
  • 2008年:Solomon Hykes 和他的团队创立了 dotCloud 公司,目标是创建一个与编程语言无关的平台即服务(PaaS)产品,利用容器技术。

Docker 相关组件

Docker CE(社区版)的源代码可以在Docker的GitHub官方仓库中找到。Docker CE包括了Docker引擎和其他相关组件的源代码。以下是Docker CE主要组件的GitHub仓库地址:

然而,值得注意的是,虽然这些组件共同构成了Docker CE,但是它们各自独立维护和开发。因此,如果你想从源码构建Docker CE,你可能需要从这些仓库中克隆源码并进行构建。

此外,Docker公司也有一个总览其所有开源项目的GitHub组织,你可以在这里找到更多与Docker相关的项目和工具:

如果你是初次接触Docker CE的源码,建议先阅读官方文档,了解构建和安装过程,因为从源码构建Docker CE可能需要一定的系统配置和编译环境。

Docker社区版(CE):为了开发人员或小团队创建基于容器的应用,与团队成员分享和自动化的开发管道。docker-ce提供了简单的安装和快速的安装,以便可以立即开始开发。docker-ce集成和优化,基础设施。(免费)

docker CE分为 Edge与 Stable两个版本。 Edge是每个月发布一个版本, Stable一个季度的最后一个月发布一个版本。

Docker企业版(EE):专为企业的发展和IT团队建立谁。docker-ee为企业提供最安全的容器平台,以应用为中心的平台。(付费)

提示

PS:本文整理收集内容来源于网络。