如果虚拟机内服务对内核版本有要求,这个服务就不太适合用docker来实现
不管什么服务内核版本和宿主机是相同的
六项隔离
Ipc:共享内存,消息列队
Mnt:挂载点,文件系统
Net:网络线
Pid:进程编号
User:用户,组
Uts:主机名,域名
Namespec六项隔离,实现了容器与宿主机,容器与容器之间的隔离。
Cgroup作用
四大功能
1.资源限制:cgroup可以对进程组使用的资源总额进行限制
2.优先级分配:通过分配的cpu时间片数量以及硬盘IO带宽大小,实际上相当于控制了进程运行的优先级别
3.资源统计:cgroup可以统计系统资源使用量,比如cpu使用时间,内存使用量等,用于按量计费。同时还支持挂起工能,也就是说通过cgroup把所有资源限制起来,对资源都不能使用,注意并不是说我们的程序不能使用了,只是不能使用资源,处于等待状态
4.进程控制:可以对进程组执行挂起,回复等操作。
内存限额
容器内存包括两个部分:物理内存和swap
可以通过参数控制容器内存的使用量:
-m或者–memory:设置内存的使用限额
–memory-swap:设置内存+swap的使用限额
磁盘的读写
Docker中可以通过设置权重,限制bps和iops的方式控制容器读写磁盘的IO
Bps:每秒读写得到数据量 byte per second
Iops:每秒IO的次数 io pr second
默认情况下,所有容器都能够平等的读写磁盘,也可以通过–blkio-weight参数改变容器的blockIO的优先级
–device-read-bps:显示读取某个设备的bps
–device-write-bps:显示写入某个设备的bps
–device-read-iops:显示读取某个设备的iops
–device-write-iops:显示写入某个设备的iops