在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Docker底层技术: docker底层的2个核心技术分别是Namespaces和Control groups Namespace:是容器虚拟化的核心技术,用来隔离各个容器,可解决容器之间的冲突。 主要通过以下六项隔离技术来实现:
只要解耦了这6项,其他系统资源即便有共用的情况,计算机也认为是在两个不同的系统中。 cgroup(控制程序对资源的占用) 实现cgroup是的主要目的是为不同用户层面的资源管理,提供一个统一化的接口。从单个进程的资源控制到操作系统层面的虚拟化。 cgroup的作用: 1) 资源的限制:cgroup可以对进程组使用的资源总额进行限制。 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(磁盘的读写):
//创建一个容器名为testA,并限制该磁盘每秒写入的数量为为30MB。 [root@sqm-docker01 ~]# docker run -it --name testA --device-write-bps /dev/sda:30MB centos 写入数据进行测试:
可以发现每秒写入的数量为80M,大概用时26s。 正常写入磁盘时: 以上就是本次介绍的关于Docker底层技术全部知识点,感谢大家的学习和对极客世界的支持。 |
请发表评论