Update underly
parent
0bbbad9add
commit
69f46f9664
|
@ -1,10 +1,11 @@
|
|||
## 基本架构
|
||||
Docker 采用了 C/S架构,包括客户端和服务端。
|
||||
Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。
|
||||
客户端和服务端既可以运行在一个机器上,也可通过 socket 或者 RESTful API 来进行通信。
|
||||
|
||||
Docker 采用了 `C/S` 架构,包括客户端和服务端。Docker 守护进程 (`Daemon`)作为服务端接受来自客户端的请求,并处理这些请求(创建、运行、分发容器)。
|
||||
|
||||
客户端和服务端既可以运行在一个机器上,也可通过 `socket` 或者 `RESTful API` 来进行通信。
|
||||
|
||||
![Docker 基本架构](_images/docker_arch.png)
|
||||
|
||||
Docker 守护进程一般在宿主主机后台运行,等待接收来自客户端的消息。
|
||||
|
||||
Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。
|
||||
Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。
|
||||
Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker 守护进程交互。
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
控制组([cgroups](http://en.wikipedia.org/wiki/Cgroups))是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,才能避免当多个容器同时运行时的对系统资源的竞争。
|
||||
|
||||
控制组技术最早是由 Google 的程序员 2006 年起提出,Linux 内核自 2.6.24 开始支持。
|
||||
控制组技术最早是由 Google 的程序员在 2006 年提出,Linux 内核自 2.6.24 开始支持。
|
||||
|
||||
控制组可以提供对容器的内存、CPU、磁盘 IO 等资源的限制和审计管理。
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
## 容器格式
|
||||
最初,Docker 采用了 LXC 中的容器格式。自 1.20 版本开始,Docker 也开始支持新的 [libcontainer](https://github.com/docker/libcontainer) 格式,并作为默认选项。
|
||||
|
||||
最初,Docker 采用了 `LXC` 中的容器格式。从 0.7 版本以后开始去除 LXC,转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://containerd.tools/)。
|
||||
|
||||
对更多容器格式的支持,还在进一步的发展中。
|
||||
|
|
|
@ -19,4 +19,4 @@ UTS("UNIX Time-sharing System") 命名空间允许每个容器拥有独立的 ho
|
|||
### user 命名空间
|
||||
每个容器可以有不同的用户和组 id, 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户。
|
||||
|
||||
*注:关于 Linux 上的命名空间,[这篇文章](http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/) 介绍的很好。
|
||||
*注:更多关于 Linux 上命名空间的信息,请阅读 [这篇文章](http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/)。
|
||||
|
|
Loading…
Reference in New Issue