docker原理(Namespace,Cgroups,Chroot)

namespace主要实现资源的隔离(linux kernel > 3.8):

Mount Namespace
PID Namespace
Net Namespace #网络设备,网络栈,端口等
IPC Namespace #信号量,消息队列和共享内存
UTS Namespace #主机名与域名
User Namespace

Cgroups 限制物理资源(cpu,内存):

Linux Cgroups(Linux Control Group),Linux内核中用来设置资源限制的一个重要功能,
Cgroup对进程组的资源限制:

vim test.sh
#!/bin/bash
while :;do
:
done
chmod +x test.sh
./test.sh &

随后可以看到有cpu会被占满,如何对其进程进行限制?
请添加图片描述

Chroot 将指定目录设置为根目录,使的用户的操作被限制在当前目录而不影响其他目录:(docker实现文件系统级别的隔离 )
mkdir /test
cd test
chroot /test/
#报错 chroot:failed to run command ‘/bin/bash’:no such file or directory
#缺少chroot运行的环境,所依赖的各种库文件
#查询需要哪些库文件
ldd /bin/bash
linux-vdso.so.1 =>  (0x00007ffe0b970000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fc7b3503000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc7b32ff000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc7b2f3b000)
/lib64/ld-linux-x86-64.so.2 (0x000055dbfbad7000)#可以得知都是在于lib64
cp -r /lib64/ test
#还需要/bin/bash
mkdir bin
cp /bin/bash bin/
ls
bin lib64
chroot /test/
#成功将test目录设为根目录,从而实现了文件系统间的隔离
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值