Docker基础概念

Docker 中有非常重要的三个基本概念:镜像、容器和仓库。

  • Docker 服务(dockerd  是一个守护进程。
  • 每个容器  是宿主机上的一个独立进程。

Docker 是基于轻量级虚拟化技术的软件,虚拟化技术是一种资源管理技术,是将计算机的各种资源予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。

Docker 技术是基于 LXC(Linux container- Linux 容器)虚拟容器技术的。

LXC 技术主要是借助 Linux 内核中提供的 CGroup 功能和 namespace 来实现

  • namespace 是 Linux 内核用来隔离内核资源的方式。 通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨进程根本就感觉不到对方的存在。具体的实现方式是把一个或多个进程的相关资源指定在同一个 namespace 中。Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。
  • CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物理资源 (如 cpu memory i/o 等等) 的机制。

cgroup 和 namespace 两者对比:

两者都是将进程进行分组,但是两者的作用还是有本质区别。namespace 是为了隔离进程组之间的资源,而 cgroup 是为了对一组进程进行统一的资源监控和限制。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计