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
相关推荐
会飞的土拨鼠呀16 分钟前
Docker 容器维护手册
docker·容器·eureka
慕伏白29 分钟前
【慕伏白】Docker 常用指令
docker·容器·eureka
数据知道36 分钟前
HTTP/HTTPS 安全深度剖析:抓包、解密与证书陷阱
安全·http·https·mitmproxy·抓包解密
java_logo43 分钟前
Docker 部署 Trilium Notes 完整教程:自建大型知识库
docker·容器·trilium·trilium note·trilium部署·docker部署trilium·trilium部署文档
myqijin1 小时前
Cloudflare Tunnel docker-compose.yml
docker
weixin_307779131 小时前
Linux下Docker Compose里运行PostgreSQL数据库故障诊断Shell脚本
linux·运维·数据库·docker·postgresql
AI创界者1 小时前
安全测试环境搭建:在 Kali Linux 中部署与配置开源 WebShell 管理工具 AntSword(蚁剑)
linux·运维·安全
梦想的颜色1 小时前
【Docker 原理】Docker 数据持久化完全指南:三种挂载原理、数据卷实操、数据库落地实战
docker·云原生·数据持久化·volume·数据卷·容器挂载
qiu_lovejun9981 小时前
linux安装docker和redis和rabbitmq和nginx和rocketmq和kafka
linux·redis·docker·kafka·rabbitmq·rocketmq
源码学社2 小时前
Spug 3.0 Ubuntu 22.04 Docker 部署文档
linux·ubuntu·docker·windows安装·spug