容器生态系统

作者:Guangran 日期:2023-12-07

容器核心技术

容器规范

容器不仅仅只有 Docker 还有 Containerd、Podman、iSula、Rocket 等。所以为了保证容器生态的健康发展,让所有容器之间能够相互兼容,需要建立起一个统一的规范。所以由 Docker、Google、CoreOS 等公司建立起了一个 Open Container Initiative (OCI)组织,负责制定容器的规范。

目前发布的容器规范:runtime spec、image format spec。

容器 runtime

容器真正运行的地方,需要和操作系统 Kernel 紧密协作,为容器提供运行环境。

主流的 runtime:

  • lxc:Linux 上的老牌 runtime。Docker 最初使用的 runtime;

  • runc:Docker 自己开发的 runtime ,符合 OCI 规范,目前 Docker 默认的 runtime;

  • rkt:CoreOS 开发的容器 runtime,符合 OCI 规范,能够运行 Docker 的容器。

容器管理工具

用户用来管理容器的工具,对内与 runtime 交互,对外为用户提供操作接口。

容器管理工具:

  • lxd:lxc 对应的管理工具;

  • docker engine:runc 对应的管理工具,包含后台 deamon 和 cli 两部分;

  • rkt cli:rkt 对应的管理工具。

容器定义工具

用户用来定义容器的内容和属性的工具,这样使得容器可以被保存、共享和重建。

容器定义工具:

  • Docker image:Docker 容器的模板,runtime 根据 docker image 创建容器;

  • Dockerfile:包含若干命令的文本文件,可以通过这些命令创建出 docker image;

  • ACI (App Container Image):类似 docker image,由 CoreOS 开发的 rkt 容器的 image 格式。

Registries

用来存放 image 的仓库。

  • Docker Registry:便于企业用来构建私有的 image 仓库 ;

  • Docker Hub:公共的 image 仓库(https://hub.docker.com);

  • Quay.io:提供与 Docker Hub 类似的服务,也是一个公共的 imags 仓库(https://quay.io)。

容器 OS

专门运行容器的操作系统,当然常规操作系统(Linux、MAC OS、Windows)都可以运行容器,但是与常规操作系统相比容器 OS 体积更小,启动更快。

容器 OS:CoreOS、Atomic、Ubuntu Core。

Consult

【1】CloudMan·《每天5分钟玩转Docker容器技术》·清华大学出版社

【2】广然笔记:https://www.rsecc.cn