docker容器管理
1、创建容器常用命令
2、容器资源限制
3、容器管理常用命令
4、容器实现核心技术:Namespace
-
在容器化中,一台物理计算机可以运行多个不同操作系统,就需要解决“隔离性”,彼此感知不到对方存在,有问题互不影响
-
Linux内核引入namespace概念,目的是将特定的全局系统资源通过抽象的方法使得namespace中的进程开起来拥有自己隔离的资源。docker就是借助这个机制实现资源隔离。
-
linux的namespace机制提供6种不同命名空间
-
IPC:隔离进程间通信
-
MOUNT:隔离文件系统挂载点
-
NET:隔离网络协议栈
-
PID:隔离进程号,进程命名空间是一个父子结构,子空间对父空间可见
-
USER:隔离用户
-
UTS:隔离主机名和域名
-
5、容器实现核心技术:CGroups
-
CGroups:所有任务就是运行在系统中的一个进程,而CGroups以某种标准将一组进程为目标进行资源分配和控制,例如CPU、内存、带宽等,并且可以动态配置。
-
CGroups主要功能:
-
限制资源组使用的资源数量:可以为进程组设定资源使用上线,如内存;
-
进程组优先控制:可以为进程组分配特定CPU、磁盘IO吞吐量;
-
记录进程组使用的资源数量:例如记录某个进程使用CPU的时间
-
进程组控制:可以将进程组挂起或恢复
-
6、docker核心组件之间的关系
-
Docker Daemon: docker守护进程,负责与docker client交互,并管理镜像、容器
-
Containerd:是一个简单的守护进程,向上给Docker Daemon提供接口,向下通过containerd-shim结合runC管理容器
-
runC:一个命令行工具,它根据OCI标准来创建和运行容器
- docker进程组示例