# docker 技术
前文docker 中简单介绍过docker的用法,这里来深入了解讲述下docker的技术内幕
# 容器生态系统
一谈到容器,大家往往有一个错误理解,docker就是容器、容器就是docker。
然而非也非也,docker确实几乎已经成了容器的代名词了,不过docker其实只是容器的一种(当然了,最重要的那一种)。
是docker将容器技术发扬光大的。
容器生态系统大致来看的话有三部分:
容器核心技术、容器平台技术、容器支持技术。
# 容器核心技术
容器核心技术指的是让Container在宿主机上运行所必须得技术,主要包括如下技术:
- 容器规范
- 容器运行时(
runtime) - 容器管理工具
- 容器定义工具
- 容器
Registry - 容器
OS
# 容器规范
前面说了,容器≠docker,还有很多其他容器,比如:CoreOS的rkt,为了统一容器标准、
保证容器的健康可持续发展,由Docker、CoreOS、Google等诸多公司成立了OCI组织,
其目的是指定开放的容器规范。
OCI全称Open Container Initiative
OCI官网:OCI
目前OCI已经发布了两个规范:runtime spec与image format spec,基于这两个规范,不同容器开发商
开发的容器能够在不同的runtime上进行运行与部署,保证了容器的可移植性、兼容性。
# 容器运行时(runtime)
runtime是Container运行所需要的全部资源,runtime就是Container运行的环境。
举个栗子:
如果把java程序开做Container的话,JVM就是该java程序的runtime。
目前主要的容器runtime有:lxc、runc、rkt三种。
lxc是老牌的容器runtime,runc是docker自行研发的符合OCI规范的容器runtime,rkt是CoreOS开发的runtime。


