自动化运维之docker下——docker安全(未完待续)
作者:互联网
1、理解Docker安全
2、容器资源控制
需要用到cgroup软件控制容器资源
yum install libcgroup-tools.x86_64 -y #安装cgroup
Linux Cgroups 的全称是 Linux Control Group。
是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。 对进程进行优先级设置、审计,以及将进程挂起和恢复等操作。 Linux Cgroups 给用户暴露出来的操作接口是文件系统。 它以文件和目录的方式组织在操作系统的 /sys/fs/cgroup 路径下。
执行此命令查看:mount -t cgroup
CPU限额:
docker run -it --cpu-period=100000 --cpu-quota=20000 ubuntu
cpu_period 和 cpu_quota 这两个参数需要组合使用,用来限制进程在长度为 cpu_period 的一段时间内,只能被分配到总量为 cpu_quota 的 CPU 时间,以上设置表示20%的cpu时间。
内存限制:
容器可用内存包括两个部分:物理内存和swap交换分区。
docker run -it --memory 200M --memory-swap=200M ubuntu --memory
设置内存使用限额 --memory-swap设置swap交换分区限额
Block IO限制:
[root@server1 ~]# docker run -it --device-write-bps /dev/vda:30MB centos:7
[root@b0bf1d78305d /]#
[root@b0bf1d78305d /]# dd if=/dev/zero of=file bs=1M count=100 oflag=direct
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 3.34049 s, 31.4 MB/s
[root@b0bf1d78305d /]#
限制写设备的bps 目前的block IO限制只对direct IO有效。(不使用文件缓存)
3、docker安全加固
利用LXCFS增强docker容器隔离性和资源可见性
工作机理是:通过cgroup实现资源控制;通过lxcfs实现数据隔离。
yum install -y lxcfs-2.0.5-3.el7.centos.x86_64.rpm
lxcfs /var/lib/lxcfs &
[root@server1 proc]# docker run -it -m 256m \
> -v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw \
> -v /var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw \
> -v /var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw \
> -v /var/lib/lxcfs/proc/stat:/proc/stat:rw \
> -v /var/lib/lxcfs/proc/swaps:/proc/swaps:rw \
> -v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw \
> centos:7
[root@a9e8d1bdaed3 /]# free -m
total used free shared buff/cache available
Mem: 256 3 252 202 0 252
Swap: 256 0 256
标签:lib,运维,--,未完待续,var,docker,proc,lxcfs 来源: https://blog.csdn.net/Zhaohui_Zhang/article/details/123032650