手写Docker之认识NameSpace、CGroups、Union file system

news/2025/2/13 0:09:20/

关于NameSpace

Linux NameSpace主要是kernel中用于隔离系统资源的功能,而docker就是基于NameSpace去隔离系统资源达到容器化的效果


以下案例均以该代码进行举例:

package mainimport ("fmt""os""os/exec""syscall"
)func  main()  {cmd:=exec.Command("sh")cmd.SysProcAttr=&syscall.SysProcAttr{Cloneflags: syscall.CLONE_NEWUTS |syscall.CLONE_NEWIPC|syscall.CLONE_NEWPID|syscall.CLONE_NEWNS|syscall.CLONE_NEWUSER|syscall.CLONE_NEWNET,}cmd.Stdin=os.Stdincmd.Stdout=os.Stdoutcmd.Stderr=os.Stderrif err:=cmd.Run();err!=nil{fmt.Print(err)return}os.Exit(-1)
}

NameSpace主要包括…

UTS NameSpace:主要用于隔离nodeName、domainName。让每个NameSpace有自己的hostname

例如上面例子中cloneflage添加了newUTS,那么在运行程序中重新设置hostname在程序外并未受影响:
在这里插入图片描述
在这里插入图片描述


IPC NameSpace:用于隔离System V IPC、POSIX message queues(都是一种用于进程间通信(IPC)的机制,常用于不同进程之间共享数据或信号量。如消息队列、信号量、共享内存),例如上面例子中cloneflage添加了NEWIPC

在这里插入图片描述
在这里插入图片描述
举一反三
PID NameSpace:隔离进程ID、(NEWPID)
Mount NameSpace:用于隔离挂载点视图,也即是说可以将目录比纳城根节点、但作用不仅限于此(NEWNS)
User NameSpace:隔离用户组ID(NEWUSER)

NetWork NameSpace:隔离网络设备、ip、port等


http://www.ppmy.cn/news/74769.html

相关文章

1057 Stack (PAT甲级)

用了《算法笔记》中分块的思路。 #include <iostream> #include <string> #include <vector> #include <cstdio> #include <cmath> const int MAXN 100001;int main(){int N, sz, nbrOfBlock, t, cnt, j;int count[MAXN] {0};sz sqrt(MAXN *…

OKR是什么意思啊

一、OKR是什么意思&#xff1f; OKR是"Objective and Key Results"的缩写&#xff0c;即目标和关键结果。它是一种目标管理框架&#xff0c;旨在帮助组织和团队设定明确的目标&#xff0c;并通过关键结果来衡量和追踪目标的实现情况。 为了让大家快速了解什么是OKR…

ResourceManager启动报错:Queue configuration missing child queue names for root【已解决】

Queue configuration missing child queue names for root 现象报错分析ResourceManager输出日志解决 现象 start-all.sh后缺少RM的进程 报错 查看启动日志输出文件 2023-05-23 19:28:19,863 INFO [main] resourcemanager.RMNMInfo (RMNMInfo.java:<init>(63)) - Re…

UNIX网络编程卷一 学习笔记 第十五章 Unix域协议

本书中&#xff0c;作者说Unix域数据报套接字是不可靠的&#xff0c;这一说法已经过时&#xff0c;当前大多实现中&#xff0c;Unix域套接字都是可靠的&#xff0c;不论是数据报套接字还是字节流套接字。 Unix域协议不是一个实际的协议族&#xff0c;而是单个主机上执行客户/服…

ROS学习(3)——CMakeLists文件的编写

学会CMakeLists文件编写是学习ros一个很重要的知识&#xff0c;但是因为每个人编写的CMakeLists不同&#xff0c;当初学习的时候我查了很多学习资料发现依旧很难入门&#xff0c;所以现在准备详细全面的介绍一下CMakeLists里面包含哪些内容&#xff0c;如何根据自己的项目编写自…

3D点云数据转为俯瞰图Python实现代码

我主要是参考了英文博客来撰写本篇文章&#xff0c;仅作为个人学习笔记参考使用。 文章目录 一、点云数据二、图像与点云坐标三、创建点云数据的鸟瞰视图3.1 鸟瞰图的相关坐标轴3.2 限制点云数据范围3.3 将点位置映射到像素位置3.4 切换到新的零点3.5 像素值3.6 创建图像矩阵3.…

8、Ray社区和资源

8、Ray社区和资源 导航 1.简介和背景 2.Ray的基本概念和核心组件 3.分布式任务调度和依赖管理 4.对象存储和数据共享 5.Actor模型和并发编程 6.Ray的高级功能和扩展性 7.使用Ray构建分布式应用程序的案例研究 8.Ray社区和资源 9.核心框架介绍 10.扩展1

实时频谱-2.1实时频谱分析仪的工作方式

现代实时频谱分析仪 现代实时频谱分析仪可以采集分析仪输入频率范围内任何地方的传输频带或频宽。这一功能的核心是RF 下变频器&#xff0c;后面跟有一个宽带中间频率(IF)段。ADC数字化IF信号&#xff0c;系统以数字方式执行所有进一步的步骤。DSP算法执行所有信号调节和分析功…