2025/1/12作业提问
基础docker部分
No1.容器技术的核心功能是什么
通过约束和修改进程的动态表现,从而为其创造出一个“边界”。
追问:这个边界有哪些
Cgroups 技术是用来制造约束的主要手段,而 Namespace 技术则是用来修改进程视图的主要方法, rootfs 的文件系统
Cgroups资源限制,Namespace隔离资源, rootfs 的文件系统
追问:谈一下你对namespace作用的理解
跟真实存在的虚拟机不同,在使用 Docker 的时候,并没有一个真正的“Docker 容器”运行在宿主机里面。它还是原来的应用进程,只不过Docker 为它们加上了各种各样的 Namespace 参数。这会让进程就会觉得自己是各自 PID Namespace 里的第 1 号进程,只能看到各自 Mount Namespace 里挂载的目录和文件,只能访问到各自 Network Namespace 里的网络设备,就仿佛运行在一个个“容器”里面。它只能“看到”某些指定的内容。但对于宿主机来说,这些被“隔离”了的进程跟其他进程并没有太大区别。
追问:谈一下你对cgroups作用的理解
限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。
追问:谈一下你对rootfs作用的理解
为了能够让容器的这个根目录看起来更“真实”,我们一般会在这个容器的根目录下挂载一个完整操作系统的文件系统,而这个挂载在容器根目录上、用来为容器进程提供隔离后执行环境的文件系统,就是所谓的“容器镜像”。它叫作:rootfs(根文件系统)