欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

docker原理

时间:2023-06-24
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/bashwhile :;do:donechmod +x test.sh./test.sh &

随后可以看到有cpu会被占满,如何对其进程进行限制?

Chroot 将指定目录设置为根目录,使的用户的操作被限制在当前目录而不影响其他目录:(docker实现文件系统级别的隔离 )

mkdir /testcd testchroot /test/#报错 chroot:failed to run command ‘/bin/bash’:no such file or directory#缺少chroot运行的环境,所依赖的各种库文件#查询需要哪些库文件ldd /bin/bashlinux-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)#可以得知都是在于lib64cp -r /lib64/ test#还需要/bin/bashmkdir bincp /bin/bash bin/lsbin lib64chroot /test/#成功将test目录设为根目录,从而实现了文件系统间的隔离

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。