Docker安全
和本地共享资源,会有安全性问题
1. Cgroups
对资源的上限进行控制
/sys/devices/system
1.1 cpu资源限制
# 进行cpu控制,只使用20%的资源docker run -it--rm --cpu-period 100000 --cpu-quota 20000 ubuntu
# 测试cpu使用ddif=/dev/zero of=/dev/null &
1.2 cpu优先级控制
# 为该容器分配100的优先级,最高优先级是1024docker run -it--rm --cpu-shares 100 ubuntu
# 消耗CPU资源ddif=/dev/zero of=/dev/null &
# 为该容器分配默认1024的优先级docker run -it--rm ubuntu
ddif=/dev/zero of=/dev/null &
# 实验测试环节,为了保证只有一个CPU的情况下,产生竞争关系。cd /sys/devices/system/cpu/cpu1/
echo0> online
1.3 memory资源限制
# 为该容器分配200M物理内存+200Mswapdocker run -d--name demo --memory 200M --memory-swap=200M nginx
cd /sys/fs/cgroup/memory/
mkdir x1
# 写入实际物理内存限制,这个根据实际内存cd x1/
echo209715200> memory.limit_in_bytes
# 安装工具,方便使用cgexec
yum install-y libcgroup-tools.x86_64
cd /dev/shm/
lsfree-m# 使用300M
cgexec -g memory:x1 ddif=/dev/zero of=bigfile bs=1M count=300free-m
1.4 磁盘IO资源限制
# 对磁盘的写速度限制为30Mdocker run -it--rm --device-write-bps /dev/sda:30MB ubuntu
ddif=/dev/zero of=bigfile bs=1M count=100oflag=direct
2. lxcfs隔离
之前对资源的控制,没有隔离效果。
yum install-y lxcfs-2.0.5-3.el7.centos.x86_64.rpm
lxcfs /var/lib/lxcfs/ &
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 ubuntu
3. 容器特权
# 全权限开启# docker run -it --rm --privileged busybox
# 开启部分权限docker run -it--rm --cap-add=NET_ADMIN busybox
本文转载自: https://blog.csdn.net/weixin_43945111/article/details/141883840
版权归原作者 long_respect 所有, 如有侵权,请联系我们删除。
版权归原作者 long_respect 所有, 如有侵权,请联系我们删除。