Docker 之 容器技术

本文详细介绍了Docker中实现容器技术的关键——namespace和Control Group(CGroup)。namespace提供了进程级别的资源隔离,包括pid、net、ipc、mnt、uts和user namespace。CGroup则用于限制、控制与分离一组进程的资源,如CPU、内存,确保资源的有效分配和管理。文章通过实例解析了namespace的常用操作,并深入探讨了CGroup的概念、相关名词、cpu和memory子系统以及cgroup driver的作用。
摘要由CSDN通过智能技术生成

1. namespace


1.1 namespace概述

实现容器化的前提在于提供一种资源隔离方案,作为虚拟化的前驱——虚拟机,在主机内部开辟一块较大的磁盘空间,并将虚拟系统所需的所有文件、二进制代码、依赖环境安装到本机,从而实现系统的虚拟化。但这种面向系统的虚拟化方式,开销大,资源利用率低。

相比虚拟机的重量级隔离方式,也存在一款轻量级方案,namespace是一种Linux kernel提供的面向进程的资源隔离方案,系统可以为进程分配不同的names互不干扰,从而实现轻量级容器化。

pid namespace:进程隔离,每个namespace的pid相互隔离。
net namespace: 网络隔离,即独立的网络标识,docker使用veth将container中的虚拟网卡同host相连。
ipc namespace:进程间交互隔离,Linux中常见的交互方式:信号量、消息队列和共享内存。
mnt namespace:允许文件目录隔离
uts namespace:允许每个container拥有独立的hostname和domain name
user namespace:允许每个container拥有不同的user和group id

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值