docker 原理与应用实践
docker 原理与应用实践
张成远
Agenda
• 容器系统整体架构
• Namespace
• CGroup
• Device Mapper
• Pull Image
• Start Container
• Stop Container
• Docker Image Storage
容器系统整体架构
Namespace
• 提供进程级别的资源隔离
• 为进程提供不同的命名空间视图
• 与虚拟机不同
Namespace 概念及当前支持的种类
• mnt (Mount points)
• pid (Processes)
• net (Network stack)
• ipc (System V IPC)
• uts (Hostname)
• user (UIDS)
Namespace 实现
Namespace 使用接口
• 创建新进程及namespace
• 加入当前进程到新建namespace 中
• 改变当前进程的namespace
CGroup
• 提供进程的资源管理功能
• 资源管理主要涉及内存,CPU,IO 等
• 不依赖于Namespace ,可单独使用
• 管理功能通过VFS 接口暴露
• CGroups 提供通用框架,各子系统负责实现
CGroups IO 子系统
• blkio — 块设备I/O 限制
• cpu — CPU 限制
• cpuacct — 自动生成CPU 使用报告
• cpuset — 限定所使用的核
• memory — 限制内存
• devices— 控制任务访问设备
• freezer— 挂起/ 恢复任务
Device Mapper
• DM 框架为上层应用提供了丰富的设备映射及IO 策
略方面的支持
• Docker 存储端实现之一使用DM - thin provision
• 上层通过dmsetup 工具或libdevmapper 库使用
Device Mapper
Docker storage driver
• Docker 支持Aufs,Btrfs,DM 等
• 由于DM 基于设备层,对上层文件系统layer Diff
无法直接支持,Docker 手工比对文件实现
• 启动docker 如果未指定stroage driver ,依据os
依次选择aufs 、btrfs 、devicemapper
DM thin-provision
• many virtual devices to be stored on the
same volume
• an arbitrary depth of recursive snapshots
• metadata is stored on a seperate device from
data
DM-thin provision example
• dd if=/dev/zero of=metadata bs=1024k
count=128
• dd if=/dev/zero of=data bs=1024k
count=1024
• losetup /dev/loop7 metadata
• losetup /dev/loop6 data
• dmsetup create pool --table 0
thin-pool /dev/loop7 /dev/loop6 128 512
DM-thin provision example
• dmsetup message /dev/mapper/pool 0
create_thin 0
• dmsetup create thin --table 0 2097152
thin /dev/mapper/pool 0
您可能关注的文档
最近下载
- 2025年设备监理师设备合同价款调整事件的处理专题试卷及解析.pdf VIP
- 2025年江门市直遴选考试真题汇编及答案解析(夺冠).docx VIP
- (高清版)DB13∕T 2936-2019 浆砌石工程检测技术规程.docx VIP
- 12D8 河北《 内线工程》标准图集.docx VIP
- 肺囊肿的症状ppt模板.pptx VIP
- 去甲肾上腺素的护理措施.doc VIP
- 2024年江门市直遴选笔试真题汇编含答案解析(夺冠).docx VIP
- 房建项目施工进度计划管理.docx VIP
- 建筑工程内业资料全套范本(表格类).doc VIP
- 内蒙古民族大学《计算机基础与C语言》2024-----2025学年期末试卷(A卷).pdf VIP
原创力文档

文档评论(0)