Docker安全

Docker安全

和本地共享资源,会有安全性问题

1. Cgroups

对资源的上限进行控制

bash 复制代码
/sys/devices/system

1.1 cpu资源限制

bash 复制代码
# 进行cpu控制,只使用20%的资源
docker run -it --rm --cpu-period 100000 --cpu-quota 20000 ubuntu
bash 复制代码
# 测试cpu使用
dd if=/dev/zero of=/dev/null &

1.2 cpu优先级控制

bash 复制代码
# 为该容器分配100的优先级,最高优先级是1024
docker run -it --rm --cpu-shares 100 ubuntu
# 消耗CPU资源
dd if=/dev/zero of=/dev/null &
bash 复制代码
# 为该容器分配默认1024的优先级
docker run -it --rm ubuntu
dd if=/dev/zero of=/dev/null &
bash 复制代码
# 实验测试环节,为了保证只有一个CPU的情况下,产生竞争关系。
cd /sys/devices/system/cpu/cpu1/
echo 0 > online

1.3 memory资源限制

bash 复制代码
# 为该容器分配200M物理内存+200Mswap
docker run -d --name demo --memory 200M --memory-swap=200M nginx
bash 复制代码
cd /sys/fs/cgroup/memory/
mkdir x1
# 写入实际物理内存限制,这个根据实际内存
cd x1/
echo 209715200 > memory.limit_in_bytes
bash 复制代码
# 安装工具,方便使用cgexec
yum install -y libcgroup-tools.x86_64
cd /dev/shm/
ls
free -m
# 使用300M
cgexec -g memory:x1 dd if=/dev/zero of=bigfile bs=1M count=300
free -m

1.4 磁盘IO资源限制

bash 复制代码
# 对磁盘的写速度限制为30M
docker run -it --rm --device-write-bps /dev/sda:30MB ubuntu

dd if=/dev/zero of=bigfile bs=1M count=100 oflag=direct

2. lxcfs隔离

之前对资源的控制,没有隔离效果。

bash 复制代码
 yum install -y lxcfs-2.0.5-3.el7.centos.x86_64.rpm
 lxcfs /var/lib/lxcfs/ &
bash 复制代码
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. 容器特权

bash 复制代码
# 全权限开启
# docker run -it --rm --privileged busybox
bash 复制代码
# 开启部分权限
docker run -it --rm --cap-add=NET_ADMIN busybox
相关推荐
两点王爷6 分钟前
IDEA中springboot项目中连接docker
spring boot·docker·intellij-idea
家庭云计算专家14 分钟前
还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
服务器·人工智能·docker·容器·编辑器
若愚679226 分钟前
前端取经路——前端安全:构建坚不可摧的Web应用防线
前端·安全
云手机管家2 小时前
CDN加速对云手机延迟的影响
运维·服务器·网络·容器·智能手机·矩阵·自动化
孤的心了不冷3 小时前
【Docker】CentOS 8.2 安装Docker教程
linux·运维·docker·容器·eureka·centos
头疼的程序员4 小时前
docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
学习·docker·容器
IT小郭.4 小时前
使用 Docker Desktop 安装 Neo4j 知识图谱
windows·python·sql·docker·知识图谱·database·neo4j
淡水猫.4 小时前
hbit资产收集工具Docker(笔记版)
运维·docker·容器
水淹萌龙9 小时前
k8s 中使用 Service 访问时NetworkPolicy不生效问题排查
云原生·容器·kubernetes
alden_ygq12 小时前
K8S cgroups详解
容器·贪心算法·kubernetes