一、Namespace 和 Cgroup
1、容器技术发展历史
2、Docker 容器实现原理
3、Namespace
4、PID namespace 隔离示例
5、Cgroups
1.概念
2. 对于开发Cgroup的特点
3. cgroup提供了四个功能
4. 术语表
5. 层级树的四大规则
二、容器资源限制
1、CPU资源限制
2、CPU资源限制示例
1. 启动一个容器,进行压力测试,设置 cpu 权重值为 1024
# docker run -it --name yl1 -c 1024 progrium/stress --cpu 1
stress: info: [1] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd
stress: dbug: [1] using backoff sleep of 3000us
stress: dbug: [1] --> hogcpu worker 1 [7] forked
可以通过 hub.docker.com 去查询相关镜像想用法
2. 使用 top 命令查看系统宿主机 cpu 使用率
3. 启动第二个容器,cpu权重值依旧设置为 1024
# docker run -it --name yl2 -c 1024 polinux/stress-ng --cpu 1
4. 再次使用 top 命令查看宿主机系统 cpu 使用率
5. 查看刚才创建的两个名为 yl1 和 yl2 容器的 CONTAINER ID
# docker ps -a -f name="yl[1|2]"| awk '{print $1}'
CONTAINER
ea105d396f6f
61949c6d3d93
6. 已经自动为这两个容器在 /sys/fs/cgroup/cpu/docker 目录下创建了相应的文件夹
7. 查看容器的 cpu.share 参数值和 tasks 值。其中 tasks 值即为该容器进程在宿主机上的PID
3、内存资源限制
4、内存资源限制示例
1. 启动一个容器,使其最多使用 400M 内存和 100M swap。并进行压力测试
5、Block IO 限制
stress镜像介绍