docker

您所在的位置:网站首页 docker的本质是宿主机上的 docker

docker

2023-07-21 12:44| 来源: 网络整理| 查看: 265

Docker容器本质上是宿主机上的进程,卷相当于容器的磁盘。

Docker通过nampespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制机制(copy-on-write)实现了高效的文件操作。

1、namespace资源隔离

      

docker-compose 容器 宿主一致 docker容器本质上是宿主机_虚拟化

2、cgroups资源限制

cgroups是Linux内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分割)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架; 通俗地来讲,cgroups可以限制、记录任务组所使用的物理资源(包括CPU、memory、IO等),为容器实现虚拟化提供了基本保证,是构建docker等一系列虚拟化管理工具的基石; 实现cgroups的主要目的是为不同用户层面的资源管理,提供一个统一化的接口,从单个任务的资源控制到操作系统层面的虚拟化,cgroups提供了一下四大功能。

cgroups的作用

资源限制:cgroups可以对任务使用的资源总额进行限制。如设定应用运行时使用内存的上限;优先级分配:通过分配的CPU时间片数量及磁盘IO带宽大小,实际上就相当于控制了任务运行的优先级;资源统计:cgroups可以统计系统的资源使用量,如CPU使用时长、内存使用量等,这个功能非常适用于计费;任务控制:cgroups可以对任务执行挂起、恢复等操作;3、libcontaner

在2013年Docker刚发布的时候,它是一款基于LXC的开源容器管理引擎。把LXC复杂的容器创建与使用方式简化为Docker自己的一套命令体系。随着Docker的不断发展,它开始有了更为远大的目标,那就是反向定义容器的实现标准,将底层实现都抽象化到Libcontainer的接口。这就意味着,底层容器的实现方式变成了一种可变的方案,无论是使用namespace、cgroups技术抑或是使用systemd等其他方案,只要实现了Libcontainer定义的一组接口,Docker都可以运行。这也为Docker实现全面的跨平台带来了可能。

licontainer特性

目前版本的Libcontainer,功能实现上涵盖了包括namespaces使用、cgroups管理、Rootfs的配置启动、默认的Linux capability权限集、以及进程运行的环境变量配置。内核版本最低要求为2.6,最好是3.8,这与内核对namespace的支持有关。

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3