Docker 从入门到实践 0.9.0(2017-12-31)
等技术,对进程进行封装隔离,属于 操作 系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容 器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。 Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极 Docker 技术比虚拟机技术更为轻便、快捷。 下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件 后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程 直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比 传统虚拟机更为轻便。 图 1.4.1.1 - 传统虚拟化 什么是 Docker 15 图 1 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删 除、暂停等。 容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命 名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚 至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一 个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安0 码力 | 370 页 | 6.73 MB | 1 年前3Docker 从入门到实践 0.4
—— 从入门到实践 2 vi. 自定义网桥 vii. 工具和示例 viii. 编辑网络配置文件 ix. 实例:创建一个点到点连接 11. 实战案例 i. 使用 Supervisor 来管理进程 ii. 创建 tomcat/weblogic 集群 iii. 多台物理主机之间的容器互联 iv. 标准化开发测试和生产环境 12. 安全 i. 内核名字空间 ii. 控制组 iii. 利用容器来运行应用。 容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全 的平台。 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运 行在其中的应用程序。 *注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。 Docker 容器 Docker —— 从入门到实践 13 容器 -t 标记来添加 tag,指定新的镜像的用户信息。 “.” 是 Dockerfile 所在的路径(当前目录),也可以 替换为一个具体的 Dockerfile 的路径。 可以看到 build 进程在执行操作。它要做的第一件事情就是上传这个 Dockerfile 内容,因为所有的操作都要 依据 Dockerfile 来进行。 然后,Dockfile 中的指令被一条一条的执行。每一步都创建了一个新的容器,在0 码力 | 179 页 | 2.27 MB | 1 年前3docker 原理与应用实践 -- 张成远
Image • Start Container • Stop Container • Docker Image Storage 容器系统整体架构 Namespace • 提供进程级别的资源隔离 • 为进程提供不同的命名空间视图 • 与虚拟机不同 Namespace 概念及当前支持的种类 • mnt (Mount points) • pid (Processes) • net (Network (Hostname) • user (UIDS) Namespace 实现 Namespace 使用接口 • 创建新进程及 namespace • 加入当前进程到新建 namespace 中 • 改变当前进程的 namespace CGroup • 提供进程的资源管理功能 • 资源管理主要涉及内存 ,CPU,IO 等 • 不依赖于 Namespace ,可单独使用 • 管理功能通过 • CGroups 提供通用框架,各子系统负责实现 CGroups IO 子系统 • blkio — 块设备 I/O 限制 • cpu — CPU 限制 • cpuacct — 自动生成 CPU 使用报告 • cpuset — 限定所使用的核 • memory — 限制内存 • devices— 控制任务访问设备 • freezer— 挂起 / 恢复任务 Device Mapper0 码力 | 26 页 | 1.79 MB | 1 年前32.4 Go在分布式docker里面的应用_孙宏亮
• Docker管理工具 • 容器进程数管理 • 容器Volume的统计与限制 • 容器特殊状态的汇报 • 网络带宽限制 Docker运维&Golang Docker运维经验: 1.尽量减少与Docker Daemon的通信 2.Docker版本的选择 3.可以利用Docker Root 4.建议利用cgroups filesystem 1.便捷的进程管理 Docker运维&Golang0 码力 | 19 页 | 1.27 MB | 1 年前3
共 4 条
- 1