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

news/2024/6/3 19:38:54 标签: docker, 容器, 运维

关于NameSpace

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


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

package main

import (
	"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.Stdin
	cmd.Stdout=os.Stdout
	cmd.Stderr=os.Stderr
	if 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.niftyadmin.cn/n/341669.html

相关文章

chatgpt生成的一些qt进度条样式

样式 //绿色小方块 style "QProgressBar {""border: 1px solid #bbb;""border-radius: 5px;""text-align: center;""background-color: #eee;""}""QProgressBar::chunk {""background-color: #6…

算法——归并排序和计数排序

Ⅰ. 归并排序 1. 基本思想 归并排序( MERGE-SORT )是建立在归并操作上的一种有效的排序算法 , 该算法是采用分治法( Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;…

Java学习路线(2)——基础语法

一、注释 注释的作用是对程序进行说明。 三种注释类型:单行注释、多行注释、文档注释。 /xxxx/ > 单行注释/* xxxxxx */ > 多行注释/** 项目名称:xxx 项目创建者:xxx */ > 文档注释 注释是一个开发过程中非常重要的东西&#xff0…

不要被别人影响,踏实做自己的事

预习 笔记 复习 做题 专注 效率 记忆 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

28-jQuery-事件绑定【click() 、on()】、事件切换toggle()、样式控制

一、click() 方法 click() 方法是一种简洁的事件绑定方法,只能绑定 click 事件,并且只允许绑定一个处理程序,无法为同一个元素绑定多个处理程序。 $(selector).click(handler); 其中,selector 是需要绑定事件的元素&#xff1b…

微信小程序 nodejs+vue+uniapp付费自习室图书馆教室座位系统-

系统分为用户和管理员角色 管理员的主要功能有: 1.管理员输入账户登陆后台 2.个人中心:管理员修改密码和账户信息 3.用户管理:对注册的用户信息进行添加,删除,修改,查询 4.自习室管理:对系统的自…

每日学术速递5.20

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Improved baselines for vision-language pre-training 标题:改进视觉语言预训练的基线 作者:Enrico Fini, Pietro Astolfi, Adriana Romero-Soriano, Jak…

区块链商业模式

1. 引言 web2 vs web3: 基于区块链的商业模式有: 1)Token Economy-Utility Token商业模式2)Blockchain As A Service(Baas)商业模式3)Blockchain-Based Software Products商业模式4&#xf…