restruct and add more content to introduce cgroups, ufs and container format

This commit is contained in:
Baohua Yang 2014-09-17 20:53:14 +08:00
parent 99f9a77b3c
commit 1ac18858b5
4 changed files with 15 additions and 17 deletions

1
underly/README.md Normal file
View File

@ -0,0 +1 @@
Docker底层的核心技术包括Linux上的名字空间Namespaces、控制组Control groups、Union文件系统Union file systems和容器格式Container format

10
underly/arch.md Normal file
View File

@ -0,0 +1,10 @@
##基本架构
Docker采用了C/S架构包括客户端和服务端。
docker daemon作为服务端接受来自客户的请求并处理这些请求创建、运行、分发容器
客户端和服务端既可以运行在一个机器上也可通过socket或者RESTful API来进行通信。
![Docker基本架构](../_images/docker_arch.png)
Docker daemon一般在宿主主机后台运行等待接收来自客户端的消息。
Docker客户端则为用户提供一系列可执行命令用户用这些命令实现跟docker daemon交互。

3
underly/cgroups.md Normal file
View File

@ -0,0 +1,3 @@
##控制组
主要用来隔离各个容器和宿主主机的资源利用。

View File

@ -1,18 +1,4 @@
##基本架构
Docker采用了C/S架构包括客户端和服务端。
docker daemon作为服务端接受来自客户的请求并处理这些请求创建、运行、分发容器
客户端和服务端既可以运行在一个机器上也可通过socket或者RESTful API来进行通信。
![Docker基本架构](../_images/docker_arch.png)
Docker daemon一般在宿主主机后台运行等待接收来自客户端的消息。
Docker客户端则为用户提供一系列可执行命令用户用这些命令实现跟docker daemon交互。
##核心技术
Docker底层的2个核心技术分别是Linux上的名字空间Namespaces和控制组Control groups
自1.20版本开始Docker已经抛开LXC不过下面的内容对于理解Docker还是有很大帮助。
##名字空间
###pid 名字空间
不同用户的进程就是通过pid名字空间隔离开的且不同名字空间中可以有相同pid。所有的LXC进程在Docker中的父进程为Docker进程每个LXC进程具有不同的名字空间。同时由于允许嵌套因此可以很方便的实现嵌套的Docker容器。
@ -31,5 +17,3 @@ UTS("UNIX Time-sharing System") 名字空间允许每个容器拥有独立的hos
###user 名字空间
每个容器可以有不同的用户和组id, 也就是说可以在容器内部用容器内部的用户执行程序而非Host上的用户。
Control groups主要用来隔离各个容器和宿主主机的资源利用。