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

容器核心技术-Namespace

一、容器

基于Linux 内核的 Cgroup, Namespace,以及Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。

1.1 容器主要特性

  • 安全性
  • 隔离性
  • 便携性
  • 可配额

二、Namespace

·Linux Namespace 是一种 Linux Kernel 提供的资源隔离方案:

  1. 系统可以为进程分配不同的 Namespace;
  2. 并保证不同的Namespace资源独立分配、进程彼此隔离,即 不同的Namespace下的进程互不干扰。

2.1 Namespace类型

在这里插入图片描述

2.2 隔离性

在这里插入图片描述

  1. pid namespace

    • 不同的用户进程就是通过pid namespace隔离开的,且不同不同namesapce中可以有相同的pid,但是这些pid都能映射到主机上的不同pid,本质还是主机上起的进程。
    • 有了pid namespace,每个namespace的pid能够相互隔离。
  2. net namespace

    • 网络隔离是通过net namespace 实现的,每个 net namespace 有独立的 network devices, IP addresses, IP routing tables。
    • Docker默认采用veth 的方式将 container 中的虚拟网卡同host上的一个docker bridge:docker0连接在一起。
  3. mnt namespace

    • mnt namespace 允许不同 namespace 的进程看到的文件结构不同,这样每个namespace中的进程所看到的文件目录就被隔离开了。
  4. uts namespace

    • UTS("UNIX Time-sharing System”) namespace允许每个 container 拥有独立的 hostname 和 domain name,使其在网络上可以被视作一个独立的节点而非Host上的一个进程。
  5. user namespace

    • 每个container 可以有不同的user和group id,也就是说可以在 container 内部用 container 内部的用户执行程序而非Host 上的用户。

三、Namespace示例

创建新的network namespace,并执行 sleep 指令:

unshare -fn sleep 100

查看进程信息:
在这里插入图片描述
查看网络namespace:
在这里插入图片描述
进入该进程所在Namespace 查看网络配置,与主机不一致:
在这里插入图片描述

http://www.lryc.cn/news/219575.html

相关文章:

  • linux写文件如何保证落盘?
  • 2023 electron最新最简版打包、自动升级详解
  • ConcurrentHashMap是如何实现线程安全的
  • MYSQL:索引与锁表范围简述
  • 15 款 PDF 编辑器帮助轻松编辑、合并PDF文档
  • PS Raw中文增效工具Camera Raw 16
  • Flink源码解析二之执行计划⽣成
  • MySQL遍历所有表所有字段查找字符数据
  • Java中的异常处理机制是怎样的?
  • 高教社杯数模竞赛特辑论文篇-2023年A题:定日镜场的优化设计(附获奖论文及MATLAB代码实现)
  • c语言实现http下载功能,显示进度条和下载速率
  • Educational Codeforces Round 157 (Rated for Div. 2) D. XOR Construction (思维题)
  • 【unity实战】实现类似英雄联盟的buff系统
  • 【C语言基础教程】函数指针与指针大小
  • Web前端—网页制作(以“学成在线”为例)
  • Hive【Hive(八)自定义函数】
  • linux远程桌面管理工具xrdp
  • 100天精通Python(可视化篇)——第106天:Pyecharts绘制多种炫酷桑基图参数说明+代码实战
  • 什么是OTP认证?OTP认证服务器有哪些应用场景?
  • shell_73.Linux使用新 shell 启动脚本
  • 【领域驱动设计】聚合
  • WiFi模块在智能家居中的应用与优化
  • LeetCode75——Day27
  • P6462补刀
  • Python教程---Python交互界面
  • 基于计算机视觉的身份证识别系统 计算机竞赛
  • [python] logging输出到控制台(标准输出)
  • uniapp 离线打包 google 登录
  • 【实战Flask API项目指南】之一 概述
  • AD面试总结