其他分享
首页 > 其他分享> > 自动化运维之docker下——docker安全(未完待续)

自动化运维之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