Docker Notes
T

容器技术介绍

注意我们这里所说的容器 container 是指的一种技术,而 Docker 只是一个容器技术的实现,或者说让容器技术普及开来的最成功的实现。

容器正在引领基础架构的一场新的革命

  • 90 年代的 PC
  • 00 年代的虚拟化
  • 10 年代的 cloud
  • 11 年代的 container

什么是 container(容器)?

容器是一种快速的打包技术。

Package Software into Standardized Units for Development, Shipment and Deployment.

  • 标准化
  • 轻量级
  • 易移植

为什么容器技术会出现?

容器技术出现之前

why_container1

容器技术出现之后

why_container2

容器 vs 虚拟机

container_vs_vm

Linux Container 容器技术的诞生于 2008 年(Docker 诞生于 2013 年),解决了 IT 世界里 “集装箱运输” 的问题。Linux Container(简称 LXC)它是一种内核轻量级的操作系统层虚拟化技术。Linux Container 主要由 NamespaceCgroups 两大机制来保证实现。

  • Namespace 命名空间主要用于资源的隔离(诞生于 2002 年)。
  • Cgroups(Control Groups)就负责资源管理控制作用,比如进程组使用 CPU/MEM 的限制,进程组的优先级控制,进程组的挂起和恢复等等。(由 Google 贡献,2008 年合并到了 Linux Kernel)。

虚拟机部署

容器部署

容器的标准化

docker != container

在 2015 年,由 Google,Docker、红帽等厂商联合发起了 OCI(Open Container Initiative)组织,致力于容器技术的标准化。

容器运行时标准 (runtime spec)

简单来讲就是规定了容器的基本操作规范,比如如何下载镜像,创建容器,启动容器等。

容器镜像标准(image spec)

主要定义镜像的基本格式。

容器是关乎“速度”

  • 容器会加速你的软件开发;
  • 容器会加速你的程序编译和构建;
  • 容器会加速你的测试;
  • 容器会速度你的部署;
  • 容器会加速你的更新;
  • 容器会速度你的故障恢复。

容器的快速发展和普及

到 2020 年,全球超过 50%的公司将在生产环境中使用 container —— Gartner

dockerhub2020

Show Graph Visualisation