容器技术
2 / 14
Docker 安装指南
自在学
首页课程创意工坊价格
首页课程创意工坊价格
编程DockerDocker 的双重身份

Docker 的双重身份

Docker 的双重身份

当我们谈论容器时,“Docker” 是一个绕不开的话题。但有趣的是,“Docker” 这个词其实有两种截然不同的含义,我们可能指的是 Docker 这家公司,也可能指 Docker 这项技术本身。


Docker 公司:容器革命的推动者

Docker 公司,全称 Docker, Inc.,是一家总部位于旧金山的科技公司。它的创始人是法裔美国开发者 Solomon Hykes。 这家公司的前身是一家名为 dotCloud 的平台即服务(PaaS)提供商。在 dotCloud 平台的背后,他们大量使用了 Linux 容器技术。 为了方便内部管理这些容器,他们开发了一个小工具,并给它起了个昵称——“Docker”。没想到,这个内部工具后来竟声名鹊起,成为了公司的核心产品。

“Docker”这个词源自英式英语,指的是码头工人。他们的工作是从货轮上装卸货物,这与 Docker 技术搬运和管理“软件集装箱”的理念不谋而合,非常形象。

2013年,公司果断地剥离了当时 struggling 的 PaaS 业务,将公司名改为 “Docker, Inc.”,从此专注于将 Docker 容器技术推广到全世界,并取得了巨大的成功。 在接下来的内容中,为了清晰起见,当我们提到 Docker, Inc. 时,我们指的是这家公司。而当我们只说 Docker 时,我们指的则是它背后的技术。


Docker 技术:运行容器的核心

大多数人所说的 Docker,其实是指那套用于运行和管理容器的技术。要理解这项技术,我们可以从三个层面入手:运行时(Runtime)、守护进程(Daemon)和编排器(Orchestrator)。

Docker 技术:运行容器的核心

运行时(Runtime):容器的“启动器”

运行时是 Docker 技术栈的最底层,它才是真正负责启动和停止容器的那个部分。你可以把它想象成汽车的发动机,是它提供了最核心的动力。Docker 的运行时采用分层架构,协同工作。

最底层的运行时叫做 runc。它是开放容器倡议(OCI)标准的一个参考实现,专门负责与操作系统内核打交道,创建和销毁容器所需的各种环境,比如命名空间和控制组。在你的系统上,每一个运行中的容器,背后都有一个 runc 实例在工作。

在 runc 之上,是更高一层的运行时,叫做 containerd。它的发音像 “container-dee”。containerd 负责管理整个容器的生命周期,包括从镜像仓库拉取镜像、管理存储,以及指挥 runc 去启动或停止容器。可以把 containerd 想象成一个工厂的车间主管,他负责接收订单、管理物料,并指挥工人(runc)去完成具体的工作。

守护进程(Daemon):Docker 的“大管家”

守护进程,也就是 dockerd,位于 containerd 之上。它扮演着一个“大管家”的角色,执行更高级别的任务。我们平时使用 Docker 命令时,主要就是和这个守护进程在交互。

它的职责范围很广,比如提供我们熟悉的 Docker API、管理镜像、管理数据卷(Volumes)、管理网络等等。dockerd 的一个核心价值在于,它提供了一个简单易用的标准接口,将底层复杂的实现细节给隐藏了起来,让我们能用非常便捷的方式来操作容器。

编排器(Orchestrator):管理“集装箱船队”

当容器数量变得非常多,并且分布在多台机器上时,我们就需要一个工具来统一管理它们,这就是“编排器”的角色。Docker 自带了一个原生的容器编排工具,叫做 Docker Swarm。

一个 Swarm 集群由多个运行着 Docker 的节点组成,你可以把它想象成一支“集装箱船队”。Docker Swarm 负责调度和管理这支船队,确保所有的“集装箱”(容器)能够协同工作。相比于目前更主流的 Kubernetes,Docker Swarm 的优点是简单易用,部署和管理都非常方便,但功能和生态系统上则没有 Kubernetes 那么强大。


OCI 开放容器倡议:制定行业标准

在前面我们提到了 OCI(Open Container Initiative)。这是一个非常重要的行业组织。

OCI 的主要职责是为容器技术的基础组件制定统一的标准,特别是镜像格式和容器运行时这两个核心部分。

要理解 OCI 的由来,我们得回顾一小段历史。当年 Docker 技术迅速崛起,几乎成了容器的代名词。但另一家名为 CoreOS 的公司(后来被 Red Hat 收购,而 Red Hat 又被 IBM 收购)对 Docker 的某些做法不太满意,于是他们自己创建了一套名为 appc 的开放标准,并推出了一个叫做 rkt(发音像 “rocket”)的容器引擎。

这一下,容器世界出现了两个互不兼容的标准,就像铁路有了两种不同宽度的铁轨,这会导致整个生态的分裂和混乱。为了避免这种情况,行业里的主要玩家们决定坐下来,共同成立了 OCI 这个组织,旨在为容器技术建立一个统一、开放的规范。

这个“铁轨”的比喻非常贴切。OCI 制定的标准就像是统一了铁轨的宽度和规格。这样一来,所有人都可以放心地去制造更好的火车、更好的车厢、更好的信号系统,因为他们知道这些东西都可以在标准化的轨道上运行。

如今,OCI 已经发布了几个重要的规范,包括镜像规范、运行时规范和分发规范。现代版本的 Docker 已经完全兼容这些 OCI 标准。


小结

在这一部分里,我们厘清了 Docker 的双重含义。我们了解了 Docker, Inc. 这家公司是如何从一个内部工具起家,并最终引领了现代容器革命。

同时,我们深入探讨了 Docker 技术的内部结构,理解了运行时(containerd 和 runc)、守护进程(dockerd)以及编排器(Docker Swarm)各自的角色和关系。

  • Docker 公司:容器革命的推动者
  • Docker 技术:运行容器的核心
    • 运行时(Runtime):容器的“启动器”
    • 守护进程(Daemon):Docker 的“大管家”
    • 编排器(Orchestrator):管理“集装箱船队”
  • OCI 开放容器倡议:制定行业标准
  • 小结

目录

  • Docker 公司:容器革命的推动者
  • Docker 技术:运行容器的核心
    • 运行时(Runtime):容器的“启动器”
    • 守护进程(Daemon):Docker 的“大管家”
    • 编排器(Orchestrator):管理“集装箱船队”
  • OCI 开放容器倡议:制定行业标准
  • 小结
自在学

© 2025 自在学,保留所有权利。

公网安备湘公网安备43020302000292号 | 湘ICP备2025148919号-1

关于我们隐私政策使用条款

© 2025 自在学,保留所有权利。

公网安备湘公网安备43020302000292号湘ICP备2025148919号-1