Docker底层技术:
docker底层的2个核心技术分别是Namespaces和Control groups
Namespace:是容器虚拟化的核心技术,用来隔离各个容器,可解决容器之间的冲突。
主要通过以下六项隔离技术来实现:
有两个伪文件系统:/proc和/sys/
- UTS:允许每个container拥有独立的hostname(主机名)和domainname(域名),使其在网络上可以被视作一个独立的节点而非Host上的一个进程。
- IPC:contaner中进程交互还是采用linux常见的进程间交互方法,包括常见的信号量,消息队列和共享内存。container的进程间交互实际上还是host上具有相同pid中的进程交互。
- PID:不同用户的进程就是通过pid namesapce隔离开的,且不同namespace中可以有相同pid。所有的LXC(linux containers)进程在docker中的父进程为docker进程,每个LXC进程具有不同的namespace。
- NET:不同用户的进程就是通过pidnamespace隔离开的,且不同namespace中可以有相同pid。所有的LXC进程在docker中的父进程为docker进程,每个lxc进程具有不同的namespace。
- MNT:文件系统的挂载点。
- USRE:每个container可以有不同的user和groupid,也就是说可以在container内部用container内部的用户执行程序而非Host上的用户。
只要解耦了这6项,其他系统资源即便有共用的情况,计算机也认为是在两个不同的系统中。
cgroup(控制程序对资源的占用)
实现cgroup是的主要目的是为不同用户层面的资源管理,提供一个统一化的接口。从单个进程的资源控制到操作系统层面的虚拟化。
cgroup的作用:
1) 资源的限制:cgroup可以对进程组使用的资源总额进行限制。
2) 优先级分配:通过分配的cpu时间片数量及磁盘IO带宽大小,实际上就是相当于控制了进程运行的优先级
3) 资源统计:Cgroup可以统计系统资源使用量。比如cpu使用时间,内存使用量等。
可用于按量计费。
4) 进程控制:可以对进程组执行挂起,恢复等操作。
cgroup的应用:
1)内存和交换分区的限制:
容器内包括两个部分:物理内存和swap
在docker中可以通过参数控制容器内存的使用:
-m或--memory:设置内存的使用限额
--memory-swap:设置swap(交换分区)的使用限额
//基于centos镜像,限制内存为200M,交换分区的内存为300M
[root@sqm-docker01 ~]# docker run -it -m 200M --memory-swap 300M centos
进入容器查看限制的内存:
[root@05a0be7b870a /]# cat /sys/fs/cgroup/memory/memory.limit_in_bytes 209715200 #显示的是字节 [root@05a0be7b870a /]# cat /sys/fs/cgroup/memory/memory.memsw.limit_in_bytes 314572800
2)容器对cpu限制:
通过-c或者--cpu-shares设置容器实验cpu的权重。如果不设置默认是1024.
//基于centos镜像,运行一个容器,名字为containerB,cpu权重限制为512: [root@sqm-docker01 ~]# docker run -it --name containerB -c 512 centos [root@b2cf9f28ce1d /]# cat /sys/fs/cgroup/cpu/cpu.shares 512
3)限制容器的Block io(磁盘的读写):
bps:每秒读写的数据量。byte per second
iops:每秒io的次数。 io per second--device-read-bps:设置读取设备的bps
--device-write-bps:设置写入设备的bps--device-read-iops:设置读取设备的iops
--device-write-iops:设置写入设备的iops
//创建一个容器名为testA,并限制该磁盘每秒写入的数量为为30MB。 [root@sqm-docker01 ~]# docker run -it --name testA --device-write-bps /dev/sda:30MB centos
写入数据进行测试:
参数解释:
infile=从/dev/zero中提取
outfile=自定义一个名称
bs=1M 文件大小为1M
count=800 总共写800次。
oflag=direct:用来指定directory IO方式写文件,这样才会使--device-write-bps生效。
可以发现每秒写入的数量为80M,大概用时26s。
正常写入磁盘时:
以上就是本次介绍的关于Docker底层技术全部知识点,感谢大家的学习和对的支持。
Docker,底层技术
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 刘德华《劲歌集》24K金碟港版[WAV+CUE][1.2G]
- Faker五冠王什么意思 世界赛五冠王Faker选手介绍
- faker塞拉斯s14决赛什么出装 faker塞拉斯s14决赛出装介绍
- LOLtoc9魔法口令在哪可以找到 2024云顶之弈toc观赛魔法口令兑换码
- 黑鸭子2008《影视经典·珍藏版》试音碟[WAV+CUE]
- 碧娜《温柔吻语2》[WAV+CUE]
- Stravinsky-Symphonies,Volume1-OrquestaSinfonicadeGalicia,DimaSlobodeniouk(2024)[24-
- 外媒评Switch2:向下兼容是关键 但挑战依然存在
- 任天堂提醒:宠物的尿或唾液或会让NS故障 把它放好!
- 《博德3》再创新高 Steam掌机总游玩时长近2000年
- 张玮伽《想你的夜DSD》东升 [WAV+CUE][1G]
- 姚璎格《 粤 24KGOLD》正版低速原抓[WAV+CUE][1G]
- 杨千嬅《如果大家都拥有海》寰亚 [WAV+CUE][998M]
- 孟庭苇.1994-1990-1994钻石精选集2CD(2022环球XRCD限量版)【上华】【WAV+CUE】
- 群星.1998-华纳好情歌精选17首【华纳】【WAV+CUE】