鸟瞰容器生态系统
容器生态系统包含核心技术、平台技术和支持技术。
容器核心技术
是指能够让 container 在 host 上运行起来的那些技术。
容器规范
包含 Docker、CoreOS、Google在内的若干公司共同成立了一个叫 Open Container Initiative(OCI) 的组织,其目的是制定开放的容器规范;
目前 OCI 发布了两个规范:runtime spec 和 image format spec。
有了这两个规范,不同组织和厂商开发的容器能够在不同的 runtime 上运行。这样就保证了容器的可移植性和互操作性。
容器 runtime
runtime 是容器真正运行的地方。runtime 需要跟操作系统 kernel 紧密协作,为容器提供运行环境。
容器只有在 runtime 中才能运行。lxc、runc 和 rkt 是目前主流的三种容器 runtime。
lxc 是 Linux 上老牌的容器 runtime。Docker 最初也是用 lxc 作为 runtime。
runc 是 Docker 自己开发的容器 runtime,符合 oci 规范,也是现在 Docker 的默认 runtime。
rkt 是 CoreOS 开发的容器 runtime,符合 oci 规范,因而能够运行 Docker 的容器。
容器管理工具
容器管理工具对内与 runtime 交互,对外为用户提供 interface。
lxd 是 lxc 对应的管理工具。
runc 的管理工具是 docker engine。docker engine 包含后台 deamon 和 cli 两个部分。
rkt 的管理工具是 rkt cli。
容器定义工具
容器定义工具允许用户定义容器的内容和属性,这样容器就能够被保存,共享和重建。
docker image 是 docker 容器的模板,runtime 依据 docker image 创建容器。
dockerfile 是包含若干命令的文本文件,可以通过这些命令创建出 docker image。
ACI (App Container Image) 与 docker image 类似,只不过它是由 CoreOS 开发的 rkt 容器的 image 格式。
Registry
容器是通过 image 创建的,需要有一个仓库来统一存放 image,这个仓库就叫做 Registry。
可以使用 Docker Registry 构建企业私有的 Registry。
Docker Hub(https://hub.docker.com) 是 Docker 公有 Registry,上面有很多现成的 image。
与 Docker Hub 类似 有Quay.io(https://quay.io/)。
容器 OS
由于有容器 runtime,几乎所有的 Linux、MAC OS 和 Windows 都可以运行容器。
容器 OS 是专门运行容器的操作系统。与常规 OS 相比,容器 OS 通常体积更小,启动更快。因为是为容器定制的 OS,通常它们运行容器的效率会更高。
--------引用来自--------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587551&idx=1&sn=8c5f97ecc132d5d3347b00ea736c4fa8&chksm=8d308046ba4709506bcca44f92ce2cf6b4c34aebacdf4cf8a8c15fd50dbb54fd904728a27185&scene=21#wechat_redirect