Docker 容器技术 — Overview

目录

文章目录

Docker

2010 年,在美国旧金山成立了一家名叫 dotCloud 的公司。这家公司主要提供基于 PaaS 的云计算技术服务。具体来说,是和 LXC 有关的容器技术。

LXC(Linux Container)是一种轻量级的虚拟化技术,可以隔离进程和资源,提供了在单一可控主机节点上支持多个相互隔离的 Server Container 同时执行的机制。Container 有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。Container 将应用程序与操作系统解耦,这意味着用户拥有了一个 Container 就近似的拥有了一个轻量且具有一定隔离性的操作系统运行时(Runtime)。

LXC 类似于 Chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机,因为 LXC 是一种操作系统层次上的资源的虚拟化,本质是一种操作系统虚拟化技术,基于 Linux Kernel 的 cgroups 和 namespace 实现。

  • namespace 用于完成资源的隔离。
  • cgroups 用于完成进程对资源使用的限制和管理。

后来,dotCloud 公司将自己的容器技术进行了简化和标准化,并命名为 Docker。Docker 诞生之初,并没有引起行业的关注。而 dotCloud 公司在激烈的竞争之下,决定将 Docker 开源。

2013 年 3 月,dotCloud 公司的创始人之一,28 岁的 Solomon Hykes 正式决定将 Docker 项目开源。开源当月,Docker 0.1 版本发布。此后的每一个月,Docker 都会发布一个版本。到 2014 年 6 月 9 日,Docker 1.0 版本正式发布。此时的 Docker,已经成为行业里人气最火爆的开源技术。dotCloud 公司也干脆把公司名字也改成了 Docker Inc.。

在容器技术之前,业界的网红是虚拟机。虚拟机属于服务器虚拟化技术。而 Docker 这样轻量级的虚拟化,属于操作系统虚拟化技术。

在这里插入图片描述

Docker Container 的启动时间很快,几秒钟就能完成。而且,它对资源的利用率很高,一台主机可以同时运行几千个 Docker Container。此外,它占的空间很小,虚拟机一般要几 GB 到几十 GB 的空间,而容器只需要 MB 级甚至 KB 级。

在这里插入图片描述

实际上要理解 Docker 并不困难,主要是两句口号:

  1. “Build, Ship and Run.”:构建、分发、运行。
  2. “Build once, Run anywhere.”:构建一次,到处运行。

Docker 的三大核心概念,分别是:

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

简而言之,Docker 就是一个 Golang 开发的开源容器引擎技术,最初基于 LXC 来实现。在 LXC 的基础之上,实现了几项重大的更改,通过类似 Git 的操作方式来构建、分发 Image,使 Container 的使用更加便捷和灵活。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Jmilk/article/details/108894697