linux容器基础-namespace-1(mnt)

news2024/11/14 17:41:37

mnt namespace

mount namespace可隔离出一个具有独立挂载点信息的运行环境,内核知道如何去维护每个namespace的挂载点列表。

即每个namespace之间的挂载点列表是独立的,各自挂载互不影响。(用户通常使用mount命令来挂载普通文件系统,但实际上mount能挂载的东西非常多,甚至连现在功能完善的Linux系统,其内核的正常运行也都依赖于挂载功能,比如挂载根文件系统/。其实所有的挂载功能和挂载信息都由内核负责提供和维护,mount命令只是发起了mount()系统调用去请求内核。)

内核将每个进程的挂载点信息保存在/proc/<pid>/{mountinfo,mounts,mountstats}三个文件中:

root@ubuntu-server:~# ls -l -h /proc/148/mount*
-r--r--r-- 1 root root 0 Jan 16 10:47 /proc/148/mountinfo
-r--r--r-- 1 root root 0 Jan 16 10:47 /proc/148/mounts
-r-------- 1 root root 0 Jan 16 10:47 /proc/148/mountstats

在这里插入图片描述

生成iso文件

root@ubuntu-server:# pwd
/root
root@ubuntu-server:# mkisofs -o 1.iso ./ && mkisofs -o 2.iso ./
root@ubuntu-server:~# ls
1.iso  2.iso

挂载1.iso 到/mnt/iso1目录(此时是在root下,不是在namespace里)

root@ubuntu-server:# mkdir /mnt/iso1/ /mnt/iso2
root@ubuntu-server:# mount 1.iso /mnt/iso1/
root@ubuntu-server:~# df -h|grep mnt
/dev/loop7       28M   28M     0 100% /mnt/iso1

创建mount+uts namespace,并在mnt ns里挂载iso2

#创建mount+uts namespace
root@ubuntu-server:~# unshare -m -u /bin/bash

#在mnt namespace 挂在iso2
root@ubuntu-server:~# mount 2.iso /mnt/iso2/

#此时mnt namespace有2个目录(因为继承了父ns的mnt)
root@ubuntu-server:~# df -h |grep mnt
/dev/loop7       28M   28M     0 100% /mnt/iso1
/dev/loop8       56M   56M     0 100% /mnt/iso2

#卸载iso1后,即在这个mnt namespace当前只有一个iso的挂载
root@ubuntu-server:#  umount /mnt/iso1/
root@ubuntu-server:#  df -h |grep mnt
/dev/loop8       56M   56M     0 100% /mnt/iso2

新开一个终端,只有iso1,看不到mnt ns中的iso2

root@ubuntu-server:~# df -h|grep iso /dev/loop7       28M   28M     0 100% /mnt/iso1

通过这个小实验我们能看到linux也支持挂载点的隔离,那不同的容器挂载不同的mnt namespace,这样每个小盒子里大家看到的都是自己“私密”的东西了~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2055640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA单个商户多个门店点餐系统小程序源码

&#x1f525;单个商户&#xff0c;多店管理新纪元&#xff01;高效点餐系统大揭秘&#x1f37d;️ &#x1f680;【一店多管&#xff0c;轻松驾驭】&#x1f680; 你是否还在为多个门店的点餐管理手忙脚乱&#xff1f;&#x1f92f; 想象一下&#xff0c;从繁华都市的中心商…

一站解决多域名安全:通配符SSL证书的全面指南

随着企业在线业务的不断扩展&#xff0c;拥有多个子域名变得越来越常见。为了确保这些子域名的安全&#xff0c;并简化管理流程&#xff0c;通配符SSL证书成为了一个高效且经济的选择。本文旨在提供一份全面的指南&#xff0c;帮助您了解通配符SSL证书的重要性和如何正确地选择…

用AI也能做短剧了?全球首款 AI 短剧平台 SkyReels重磅发布!

短剧的风头在2024年依然强劲。 几分钟到十几分钟的单集时长、强烈的娱乐性和快节奏剧情&#xff0c;频繁踩中用户「爽点」&#xff0c;仅在2023年&#xff0c;短剧市场规模就达到373.9亿元&#xff0c;预计2024年将超过500亿元&#xff0c;2027年则将超过1000亿元。 然而传统编…

ChatGPT完成论文润写的几点说明

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 论文润写是指对已完成的论文进行修改和优化&#xff0c;以提高其逻辑性、语言流畅度和整体质量。这一过程对提升论文的学术价值至关重要。ChatGPT是一种先进的人工智能语言模型&#xf…

[图解]片段16 ESS状态机图-SysMLEA建模住宅安全系统

1 00:00:00,220 --> 00:00:03,580 然后我们看初始这里 2 00:00:03,590 --> 00:00:09,500 有一个指向它的一个迁移的事件 3 00:00:09,710 --> 00:00:13,730 站点可用&#xff0c;这个实际上是错误的 4 00:00:14,020 --> 00:00:15,050 这不是事件 5 00:00:15,900…

绝密!头部数字人源码厂商在数字人直播软件开发技术有哪些?

随着数字人直播的逐渐兴起&#xff0c;数字人直播软件开发也成为了众多有意向进军数字人行业的创业者们重点关注的对象&#xff0c;以数字人直播软件开发技术有哪些为代表的问题更是屡次冲上相关社群话题榜的前列&#xff0c;并引发多轮热议。 不过&#xff0c;就市场现状来看&…

TIM定时中断之定时器定时中断定时器外部时钟应用案例

文章目录 前言一、定时器定时中断应用案例1.1 应用案例简介1.2 电路接线图1.3 应用案例代码1.4 应用案例分析1.4.1 初始化定时器1.4.2 编写定时器中断函数 二、定时器外部时钟应用案例2.1 应用案例简介2.2 电路接线图2.3 应用案例代码2.4 应用案例分析 前言 提示&#xff1a;本…

详细分析 el-progress的基本知识以及用法(附Demo)

目录 前言1. 基本知识2. Demo3. 实战 前言 由于实战项目中有所引用&#xff0c;对此记录基本的知识点&#xff0c;并且以Demo的形式呈现 1. 基本知识 el-progress 是 Element Plus UI 库中的一个进度条组件&#xff0c;用于显示任务的完成情况 可以帮助用户了解某个操作或任…

企业迈向可持续发展的钥匙:ISO 50001能源管理体系认证的深远影响

在全球环保意识日益增强的背景下&#xff0c;企业如何在节能减排的道路上脱颖而出&#xff0c;成为行业标杆&#xff1f;ISO 50001能源管理体系认证无疑是企业迈向可持续发展的重要钥匙。这一认证不仅帮助企业优化能源管理&#xff0c;还在多个层面为企业带来了深远的积极影响。…

【JavaEE】Callable,Semaphore和CountDownLatch

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 一.Callable 在Java中&#xff0c;Callable接口是一个可以返回结果的异步任务执行方式。它与Runnable接口类似&#xff0c;都是描述一个“任务”&#xff0c;…

如何为列表元素分配序列号(Java Stream API 实战)

摘要&#xff1a; 本文将详细介绍如何在Java中使用Stream API对列表中的元素进行分组&#xff0c;并为每组元素分配一个唯一的序列号。通过一个具体的示例和测试案例&#xff0c;我们将演示这一技术如何简化数据处理&#xff0c;提高代码效率。 在Java编程中&#xff0c;我们经…

Linux-进程间关系与守护进程

一、进程组 1.1 什么是进程组 之前我们提到了进程的概念&#xff0c; 其实每一个进程除了有一个进程 ID(PID)之外 还属于一 个进程组。进程组是一个或者多个进程的集合&#xff0c; 一个进程组可以包含多个进程。 每一 个进程组也有一个唯一的进程组 ID(PGID)&#xff0c; 并且…

阻抗控制中的dynamic movement primitives(DMP) model

在阻抗控制中&#xff0c;Dynamic Movement Primitives (DMP) 模型被用于实现一种高度灵活且可泛化的轨迹模仿学习方法。DMP模型由美国南加州大学&#xff08;University of Southern California&#xff09;的Stefan Schaal教授团队于2002年提出&#xff0c;它通过将动态系统建…

Linux命令之二

Linux命令之二 VI和VIM编辑器1、VIM的一般模式①、删除复制操作②、光标移动操作 2、VIM的编辑模式3、VIM的命令模式4、三种模式之间的切换关系 权限管理文件类型和权限的表示文件属性介绍chmod 改变文件权限chown 改变所有者 yum 安装软件命令 Linux命令速查平台 VI和VIM编辑器…

IOy系列BL196MQTT远程IO模块推动智能交通信号控制

在当今这个快速发展的时代&#xff0c;城市化进程加速推进&#xff0c;随之而来的是日益严重的交通拥堵问题。为了缓解这一状况&#xff0c;智能交通信号控制系统应运而生&#xff0c;成为解决城市交通问题的有效手段之一。 一、钡铼技术BL196模块简介 钡铼技术推出的IOy系列…

【SQL】商品销售

目录 题目 分析 代码 题目 表&#xff1a; Product ----------------------- | Column Name | Type | ----------------------- | product_id | int | | product_name | varchar | | unit_price | int | ----------------------- product_id 是该表的主键…

Redis与CAP定理—理解数据存储的权衡

一、概述 在分布式系统的设计中&#xff0c;理解CAP定理的重要性是不言而喻的。CAP定理指出&#xff0c;一个分布式系统不可能同时完全满足一致性&#xff08;Consistency&#xff09;、可用性&#xff08;Availability&#xff09;和分区容忍性&#xff08;Partition Toleran…

OCR识别行驶证(阿里云和百度云)

OCR识别行驶证(阿里云和百度云) 一、使用场景 1、通过识别行驶证&#xff0c;获取相关汽车信息&#xff0c;替代手输 二、效果图 三、代码部分&#xff1a; 1、阿里云OCR 1.1、控制层 PostMapping("/ocrCard") public JSONObject ocrCard(RequestPart("fi…

开放式耳机哪种好用?开放式种草测评!

现在很多人都很喜欢用开放式耳机了&#xff0c;因为这种耳机非常的舒服&#xff0c;而且不会压迫我们的耳道&#xff0c;从而给到我们更健康的体验&#xff0c;但是现在开放式耳机的品牌越来越多&#xff0c;我们也越来越难选择&#xff0c;所以我们应该怎么样才能选到一款适合…

ado.net 操作sqlite

新建控制台项目 安装nuget包Microsoft.Data.Sqlite 数据库名字和链接 string dbName "test.db"; SqliteConnection? connection null; try {//创建链接connection new SqliteConnection($"Data Source{dbName}");//打开链接connection.Open(); } ca…