Docker容器的安全性,很大程度上依赖于Linux系统自身,评估Docker的安全性时,主要考虑以下几个方面:
cpu_period 和 cpu_quota 这两个参数需要组合使用,用来限制进程在长度为 cpu_period 的一段时间内,只能被分配到总量为 cpu_quota 的 CPU 时间
再添加一个CPU
测试两个cpu的争抢问题
如果你是两个cpu的话首先先关掉一个cpu
退出刚才第二次启用的交互,下面我们可以加一个限制cpu的参数,重新进去,再次查看top中cpu占用情况
容器可用内存包括两个部分:
物理内存和swap交换分区。
docker run -it --memory 200M --memory-swap=200M ubuntu
–memory设置内存使用限额
–memory-swap设置swap交换分区限额
下载libcgroup-tools工具
创建一个用来测试内存的目录x1:
我们可以发现,创建好的目录x1里面拥有很多配置文件
因为它直接继承上级目录下的所有文件!
限制上传的内存最大为200M
建指定大小的空间,但是我们发现前面已经设置了最大内存为200M,但是创建300M的空间也并不会报错!!
那是因为它占用了我们的swap分区的大小!
我们每次创建一定大小空间之后,用free -m查看一下内存情况就明白了!
我们的mem空间并没有使用有效空间都是1432如下图,但是swap空间使用多了100M,这下刚才的疑惑就解决了!!
关闭swap分区,再添加300M就会直接报错
报错!!!!
利用LXCFS增强docker容器隔离性和资源可见性
–cap-add
*–privileged=true 的权限非常大,接近于宿主机的权限,为了防止用户的滥用,需要增加限制,只提供给容器必须的权限
此时Docker 提供了权限白名单的机制,使用–cap-add添加必要的权限。
删除ip: