Update 第一章——Docker.md

This commit is contained in:
benjas 2020-04-04 16:51:16 +08:00
parent 13eb158769
commit ce6296065b
2 changed files with 20 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View File

@ -12,7 +12,9 @@
**Cgroups 技术**是用来制造约束的主要手段,而**Namespace 技术**则是用来修改进程视图的主要方法。
如何理解在Linux启动一个容器
> **Cgroups **其名称源自**控制组群**control groups的简写[Linux内核](https://baike.baidu.com/item/Linux%E5%86%85%E6%A0%B8)的一个功能,用来限制、控制与分离一个[进程组](https://baike.baidu.com/item/%E8%BF%9B%E7%A8%8B%E7%BB%84)[资源](https://baike.baidu.com/item/%E8%B5%84%E6%BA%90)如CPU、内存、磁盘输入输出等
在Linux启动一个容器
~~~
$ docker run -it busybox /bin/sh
@ -129,3 +131,20 @@ unshare命令就是通过unshare()系统调用实现的。
### 深入理解容器镜像
**挂载在容器根目录上、用来为容器进程提供隔离后执行环境的文件系统就是所谓的“容器镜像”。它还有一个更为专业的名字叫作rootfs根文件系统。**
一个最常见的 rootfs或者说容器镜像会包括如下所示的一些目录和文件
~~~
$ ls /
bin dev etc home lib lib64 mnt opt proc root run sbin sys tmp usr var
~~~
对 Docker 项目来说,它最核心的原理实际上就是为待创建的用户进程:
1. 启用 Linux Namespace 配置;
2. 设置指定的 Cgroups 参数;
3. 切换进程的根目录Change Root
这样,一个完整的容器就诞生了。当然内核还是共享宿主机操作系统的内核。