docker资源隔离与资源限制
Dockder的namespace
限制容器内存
# 限制容器内存到200M
docker run -itd --name=c2 -m 200M centos
# 限制后,该容器最大只能使用200m内存
docker status c2
模拟内存消耗
# 进入容器
docker attach 容器名
# 安装memload内存测试工具
# 或者安装bigmem
限制容器CPU
# 限制CPU只能运行在0号CPU上
docker run -itd --name=c3 --cpuset-cpus 0 -m 200M centos
# 查看程序运行在哪个cpu上
ps mo pid,comm,psr 'pgrep bash'
将程序运行在指定cpu上
# 将程序运行在指定cpu上
taskset -c CPU编号 程序
# 查看程序运行在哪个cpu上
ps mo pid,comm,psr 'pgrep bash'
容器资源限制cgroup
限制容器对内存的使用
# 限制容器的内存为128m,swap限制300m
# 指定了-m,不指定--memory-swap,swap默认为m的两倍
docker run --name c1 -itd -m 128m --memory-swap centos
# 进入容器
docker exec -ti c1 bash
# 查看内存
cat /sys/fs/cgroup/memory/memory.limit_in_bytes
限制容器对cpu的使用
限制容器对Block IO的使用
创建一个限制资源的容器
# 创建一个centos容器,只允许使用2个cpu核心,128M内存
docker run -itd -cpuset-cpus 0,1 -m 128m centos