Docker 从入门到实践 0.9.0(2017-12-31)开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作 系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容 器。最初实现是基于 Swarm mode ,详细内容请查看 Swarm mode 一节。 Compose 模板文件 172 cgroup_parent 指定父 cgroup 组,意味着将继承该组的资源限制。 例如,创建了一个 cgroup 组名称为 cgroups_1 。 cgroup_parent: cgroups_1 container_name 指定容器名称。默认将会使用 项目名称_服务名称_序号 采用 CFS 进行带宽限制时候对 CPU 资源进行限制,默认为 false; --cgroups_hierarchy=VALUE cgroups 的目录根位置,默认为 /sys/fs/cgroup ; --[no-]cgroups_limit_swap 限制内存和 swap,默认为 false,只限制内存; --cgroups_root=VALUE 根 cgroups 的名称,默认为0 码力 | 370 页 | 6.73 MB | 1 年前3
docker 原理与应用实践 --
张成远
www.jd.com docker 原理与应用实践 张成远 docker 原理与应用实践 Agenda • 容器系统整体架构 • Namespace • CGroup • Device Mapper • Pull Image • Start Container • Stop Container • Docker Image Storage 容器系统整体架构 Namespace Namespace 实现 Namespace 使用接口 • 创建新进程及 namespace • 加入当前进程到新建 namespace 中 • 改变当前进程的 namespace CGroup • 提供进程的资源管理功能 • 资源管理主要涉及内存 ,CPU,IO 等 • 不依赖于 Namespace ,可单独使用 • 管理功能通过 VFS 接口暴露 • CGroups 提供通用框架,各子系统负责实现 失败, start container 会失败 JD image storage system 小结 • 当前 Namespace 功能仍不完善,需要更多的隔离 • Docker 主要用到 CGroup 的一部分子系统 • Docker 存储端仍需做一些选择或工作 • 选择 DM thin-provision 时需要注意 data 及 metadata 的设置 • docker start/stop0 码力 | 26 页 | 1.79 MB | 1 年前3
共 2 条
- 1













