docker安全(权限设置)、cgroup方式设置限制权限
给docker一个root权限docker run -it --name vm2 ubuntuip link set down eth0#失败docker run -it --name vm2--privileged ubuntuip link set down eth0ip addrdocker run –rm -it –name vm4 -m100M ...
·
给docker一个root权限
docker run -it --name vm2 ubuntu
ip link set down eth0 # 失败
docker run -it --name vm2 --privileged ubuntu
ip link set down eth0
ip addr
内存限制
docker run --rm -it --name vm4 -m 100M --memory-swap 100M stress --vm 1 --vm-bytes 110M # 出错所需内存太大,不足以分配
docker run --rm -it --name vm4 -m 100M stress --vm 1 --vm-bytes 200M
# --vm 1 分配一个进程 --vm-bytes
cpu限制
docker run --rm -it --cpu-shares 512 stress -c 1 # 给进程分配一个cpu
docker run --rm -it --cpu-shares 512 stress -c 4 # 用所有cpu进行测试
docker run --rm -it --cpu-shares 1024 stress -c 4
限制写的速率
docker run --rm -it --device-write-bps /dev/sda:10M ubuntu
用cgroup作限制
打开一个6.5的虚拟机
下载libcgroup.x86_64
cgroup设置内存设置
/etc/init.d/cgconfig start
cd /cgroup
vim /etc/cgonfig.conf
group x1 {
memory {
memory.limit_in_bytes = 20975200;
memory.memsw.limit_in_bytes = 20975200;
}
}
cd
/etc/init.d/cgconfig restart
cgexec -g memory:x1 dd if=/dev/zero of=file1 bs=1M counte=300
vim /etc/cgonfig.conf
group x1 {
memory {
memory.limit_in_bytes = 20975200;
memory.memsw.limit_in_bytes = 20975200;
}
}
cd
/etc/init.d/cgconfig restart
cgexec -g memory:x1 dd if=/dev/zero of=file1 bs=1M counte=300
写入失败
举例:设置两个执行脚本,使一个脚本可以执行,一个不可以
./memapp1 # 需要4096个内存页,而./memapp2 # 需要8192个内存页
vim /etc/cgonfig.conf
group x1 {
memory {
memory.limit_in_bytes = 20480000;
memory.memsw.limit_in_bytes = 20480000;
}
}
useradd wdd
vim /etc/cgrules.conf
wdd:memapp1 memory x1/
wdd:memapp2 memory x1/
/etc/init.d/cgrules.conf start
给memapp* 添加执行权限。
chmod +x memapp*
mv * /home/wdd
su -
./memapp1
./memapp2
cgroup 限制cpu
vim /etc/cgonfig.conf
group x2 {
cpu {
cpu.shares = 100;
}
}
cgroup设置blkio限制
vim /etc/cgonfig.conf
group x3 {
blkio {
blkio.throttle.read_bps_device = "252:0 1000000";
}
}
cgexec -g blkio:x3 dd if=/dev/vda of=/dev/null &
cgroup设置进程
vim /etc/cgonfig.conf
group x4 {
freezer {
}
}
echo 13039 > tasks
echo FROZEN > freezer.state
恢复:
echo THAWED > freezer.state
更多推荐
已为社区贡献5条内容
所有评论(0)