当前位置: 首页 > news >正文

【深入剖析K8s】容器技术基础(三):深入理解容器镜像 文件角度

容器里的进程‘看到’’的文件系统

可能你立刻就能想到,这应该是_个关于MountNamespace的问题:容器里的应用进程理应‘看到”一套完全独立的文件系统°这样它就可以在自己的容器目录(比如/tmp)下进行操作’而完全不会受宿主机以及其他容器的影响。

容器迸程哪些目录需要重新挂载’比如这个/tmp目录。
可以看到’容器里的/tmp目录是以tmpfS方式单独挂载的。容器以tmpfS(内存盘)格式重新挂载/tmp目录。
在这里插入图片描述
这就是Mount Namespace跟其他Namespace的使用略有不同的地方:它对容器进程视图的改变—定要伴随着挂载操作才能生效。

假设有—个$HOME/test目录’你想把它作为—个/bin/bash进程的根目录。

执行chroot t命令’告诉操作系统我们将使用$HOME/test目录作为/bin/bash进程的根目录。

这个挂载在容器根目录上用来为容器进程提供隔离后执行环境的文件系统’就是所谓的容器镜像。 它还有—个更专业的名字: rootfs(根文件系统)。

dock 最核心原理

Docker项目最核心的原理实际上就是为待创建的用户进程。

  • 启用Linux Namespace配置;
  • 设置指定的Cgroups参数;
  • 切换进程的根目录(change root)

rootfs 只是—个操作系统所包含的文件、配置和目录’并不包括操作系统内核。
在Llnux操作系统中这两部分是分开存放的’操作系统只有在开机启动时才会加载指定版本的内核镜像。

rootfS只是—个操作系统所包含的文件、配置和目录’并不包括操作
系统内核°在Llnux操作系统中’这两部分是分开存放的’操作系统只有在开机启动时才会加载指定版本的内核镜像°

正是由于rootfS的存在’容器才有了—个被反复强调至今的重要特:一致性

由于云端与本地服务器环境不同’因此应用的打包过程一直是使用PaaS时最麻烦的一个步骤。

’有了容器镜像(rootfs)之后,这个问题就被非常优雅地解决了。由于root色里打包的不只是应用’而是整个操作系统的文件和目录,这就意味着’应用以及它运行所需要的所有依赖都被封装在了一起。

相关文章:

  • Hive内置表生成函数
  • 什么是轻量应用服务器?可以从亚马逊云科技的优势入手了解
  • Unsupervised Skill Discovery via Recurrent Skill Training论文笔记
  • STM32-使用固件库新建工程
  • c 语言线程的使用
  • 【软件测试】“我“做了一年的功能点点点测试,感觉在浪费时间...
  • 肾合胶囊 | 冬不养肾春易病,若出现了这六大表现,小心是肾虚!
  • 使用Python+Redis实现文章投票网站后端功能
  • 机器学习探索计划——KNN算法流程的简易了解
  • 网络篇---第一篇
  • [pyqt5]pyqt5设置窗口背景图片后上面所有图片都会变成和背景图片一样
  • WPF绘图技术介绍
  • Python武器库开发-前端篇之CSS基本语法(三十)
  • 用JAVA编程解决数位和相等问题
  • html table样式的设计 表格边框修饰
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Apache的基本使用
  • Bytom交易说明(账户管理模式)
  • js 实现textarea输入字数提示
  • Node项目之评分系统(二)- 数据库设计
  • Python socket服务器端、客户端传送信息
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • vue-loader 源码解析系列之 selector
  • 阿里云应用高可用服务公测发布
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 分享几个不错的工具
  • 解析带emoji和链接的聊天系统消息
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 双管齐下,VMware的容器新战略
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 由插件封装引出的一丢丢思考
  • 再谈express与koa的对比
  • const的用法,特别是用在函数前面与后面的区别
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​插件化DPI在商用WIFI中的价值
  • ​马来语翻译中文去哪比较好?
  • ​你们这样子,耽误我的工作进度怎么办?
  • ###STL(标准模板库)
  • #pragma预处理命令
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (12)Linux 常见的三种进程状态
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (利用IDEA+Maven)定制属于自己的jar包
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (排序详解之 堆排序)
  • (转)负载均衡,回话保持,cookie
  • *** 2003
  • .cfg\.dat\.mak(持续补充)
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET(C#) Internals: as a developer, .net framework in my eyes