首页 > 其他分享 >Docker的Namespace隔离技术

Docker的Namespace隔离技术

时间:2024-06-13 11:13:46浏览次数:21  
标签:容器 隔离 Namespace PID 间通信 进程 Docker

什么是Namespace

Namespace 是 Linux 内核的一项功能,该功能对内核资源进行分区,以使一组进程看到一组资源,而另一组进程看到另一组资源。Namespace 的工作方式通过为一组资源和进程设置相同的 Namespace 而起作用,但是这些 Namespace 引用了不同的资源。资源可能存在于多个 Namespace 中。这些资源可以是进程 ID、主机名、用户 ID、文件名、与网络访问相关的名称和进程间通信。

Docker使用的6种Namespace

Mount Namespace

使用chroot技术,通过文件系统挂载点对文件系统提供隔离
可以通过/proc/[Pid]/mounts查看挂载在查询进程所在Namespace下的文件系统
每个容器都只能看到自身容器内的文件,提供独立的文件系统视图

PID Namespace

通过对进程Pid重新标号,使得在宿主机上不通的进程PID在容器上查看都可以为1,每个PID Namespace都有自己的计数程序,PID Namespace维护了一个树状结构,系统初始创建了一个Root Namespace,新创建的PID空间为子节点,父节点可以查看到子节点中的进程

Net Namespace

用于隔离网络设备和IP等,容器拥有独立网卡,每个进程拥有独立IP,端口

User Namespace

可以用于用户权限隔离,容器Root无法使用主机Root的特权命令
每个容器都可以有自己的用户和用户组,ID也可以完全隔离

UTS Namespace

用于隔离主机名,允许每个空间拥有独立的主机名

IPC Namespace

主要用于隔离进程间通信的,同一个IPC Namespace内的进程如果在同一个Pid Namespace可以实现进程间通信,只能访问命名空间下的进程间通信资源

标签:容器,隔离,Namespace,PID,间通信,进程,Docker
From: https://www.cnblogs.com/iamxiaofu/p/18245494

相关文章

  • 【网络安全的神秘世界】2024.6.6 Docker镜像停服?解决最近Docker镜像无法拉取问题
    ......
  • DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)
    场景DockerCompose中部署Jenkins(DockerDesktop在windows上数据卷映射):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139491855Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑:https://blog.csdn.net/BADAO_LIUMANG_......
  • docker安装详解
    docker安装详解说明:本次使用的宿主机为阿里云服务器,发行版为Ubuntu22.04.41,配置linux内核流量转发功能#因为docker和宿主机的端口映射,本质是内核的流量转发功能$cat<<EOF>/etc/sysctl.d/docker.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-ca......
  • Docker将运行中容器打包成镜像并保存到本地
    在Docker中,我们可以将正在运行的容器保存为镜像,这样就可以随时随地重新创建相同的容器环境。以下是具体步骤:将运行中的Docker容器保存为镜像首先,我们需要找到正在运行的容器的ID或名称。可以通过运行dockerps命令来查看当前运行的容器列表。然后,使用以下命令将容器保存为镜像......
  • 设置 docker 国内的 映像加速器
    背景:国内从DockerHub拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如:阿里云加速器(点击管理控制台->登录账号(淘宝账号)->右侧镜像工具->镜像加速器->复制加速器地址)网易云加速器https://hub-mirror.c.163.com百度......
  • 【龙溪系统docker 安装Oracle ,并连接本地数据库】
    安装docker(龙蜥系统)/安装docker/[root@localhostdockers]#cd/etc/yum.repos.d/查看配置文件/sudoyumupdate-y/更新YUM包/[root@localhostdockers]#sudofirewall-cmd--zone=public--permanent--add-port=443/tcp[root@localhostdockers]#sudofirewal......
  • 【龙溪系统docker 安装Oracle ,并连接本地数据库】(下)
    win10系统设置找到tnsnames.ora文件,然后写入:ORCL_DOCKER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=本机IP地址)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=helowin)))创建数据库角色Oracle/创建用户和角色/SELECT*FROM......
  • 第二章_Docker镜像操作
            Docker运行容器前需要本地存在对应的镜像,如果不存在本地镜像,Docker就会尝试从默认镜像仓库https;//hub,docker,com下载.这是由Docker官方维护的一个公共仓库,可以满足用户的绝大部分需求,用户也可以通过配置来使用自定义的镜像仓库。        下面......
  • 手把手教你搭建Docker私有仓库Harbor
    1、什么是Docker私有仓库Docker私有仓库是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的仓库DockerHub,而与DockerHub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部署在本地云环境中,用于组织内部开发、测试和......
  • Centos 7 安装 Docker 与 Docker Compose
    参考chat-gpthttps://developer.aliyun.com/article/1037178https://blog.csdn.net/gg_sunxiaolei/article/details/137137975环境软件/系统版本说明Centos7.664位yum-utils1.1.31软件包device-mapper-persistent-data26.1.4软件包lvm27:2.02.1......