Docker原理与应用实践.pdf

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

文档评论(0)

1亿VIP精品文档

相关文档