2014-10-14 13:25:01 +08:00
# # 为 什 么 要 使 用 Docker ?
2016-11-07 04:00:17 +08:00
2014-10-14 13:25:01 +08:00
作 为 一 种 新 兴 的 虚 拟 化 方 式 , Docker 跟 传 统 的 虚 拟 化 方 式 相 比 具 有 众 多 的 优 势 。
2014-09-25 17:23:05 +08:00
2019-08-11 18:49:23 +08:00
# # Why use Docker ?
As a new virtualization solution , Docker has many advantager over
other traditional virtualization solutions .
2016-11-07 04:00:17 +08:00
# # # 更 高 效 的 利 用 系 统 资 源
由 于 容 器 不 需 要 进 行 硬 件 虚 拟 以 及 运 行 完 整 操 作 系 统 等 额 外 开 销 , Docker 对 系 统 资 源 的 利 用 率 更 高 。 无 论 是 应 用 执 行 速 度 、 内 存 损 耗 或 者 文 件 存 储 速 度 , 都 要 比 传 统 虚 拟 机 技 术 更 高 效 。 因 此 , 相 比 虚 拟 机 技 术 , 一 个 相 同 配 置 的 主 机 , 往 往 可 以 运 行 更 多 数 量 的 应 用 。
2019-08-11 18:49:23 +08:00
# # # Use System Resources more efficiently
Docker has high utilization rate of system resources , because container does not need additional overhead such as hardware virtualization and running the whole system . It ' s more efficient than traditional virtual machine technology in application executing speed , memory expend and file storage speed . Therefore , a host with the same configuration can often run more applications than virtual machine technology .
2016-11-07 04:00:17 +08:00
# # # 更 快 速 的 启 动 时 间
传 统 的 虚 拟 机 技 术 启 动 应 用 服 务 往 往 需 要 数 分 钟 , 而 Docker 容 器 应 用 , 由 于 直 接 运 行 于 宿 主 内 核 , 无 需 启 动 完 整 的 操 作 系 统 , 因 此 可 以 做 到 秒 级 、 甚 至 毫 秒 级 的 启 动 时 间 。 大 大 的 节 约 了 开 发 、 测 试 、 部 署 的 时 间 。
2014-09-25 17:23:05 +08:00
2019-08-11 18:49:23 +08:00
# # # Faster startup time
The traditional virtual machine technology needs minutes to startup application service , but Docker can do it in seconds or milliseconds due to running on the kernel of host machine and not running the whole system . It saves a considerable amount of time for developing , testing , deploying .
2016-11-07 04:00:17 +08:00
# # # 一 致 的 运 行 环 境
2014-09-25 17:23:05 +08:00
2017-09-04 22:06:11 +08:00
开 发 过 程 中 一 个 常 见 的 问 题 是 环 境 一 致 性 问 题 。 由 于 开 发 环 境 、 测 试 环 境 、 生 产 环 境 不 一 致 , 导 致 有 些 bug 并 未 在 开 发 过 程 中 被 发 现 。 而 Docker 的 镜 像 提 供 了 除 内 核 外 完 整 的 运 行 时 环 境 , 确 保 了 应 用 运 行 环 境 一 致 性 , 从 而 不 会 再 出 现 * 「 这 段 代 码 在 我 机 器 上 没 问 题 啊 」 * 这 类 问 题 。
2014-09-25 17:23:05 +08:00
2019-08-11 18:49:23 +08:00
# # # Consistent operating environment
The consensus problem of environment is a common problem in developing . It causes some bugs which weren ' t found at developing due to different environments of developing , testing , production . Docker ' s image provides a complete runtime environment without kernel , which ensures consistency of the application runtime environment so that problmes like * This piece of code is okey on my machine * do not recur .
2016-11-07 04:00:17 +08:00
# # # 持 续 交 付 和 部 署
2014-09-25 17:23:05 +08:00
2016-11-07 04:00:17 +08:00
对 开 发 和 运 维 ( [ DevOps ] ( https : //zh.wikipedia.org/wiki/DevOps))人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。
2014-09-25 17:23:05 +08:00
2019-08-11 18:49:23 +08:00
# # # CI / CD
For development and operation ( [ DevOps ] ( https : //zh.wikipedia.org/wiki/DevOps)) people, desirable thing is to create or configure at once and run normally anywhere.
2017-11-22 20:28:10 +08:00
使 用 Docker 可 以 通 过 定 制 应 用 镜 像 来 实 现 持 续 集 成 、 持 续 交 付 、 部 署 。 开 发 人 员 可 以 通 过 [ Dockerfile ] ( . . / image / dockerfile / ) 来 进 行 镜 像 构 建 , 并 结 合 [ 持 续 集 成 ( Continuous Integration ) ] ( https : //en.wikipedia.org/wiki/Continuous_integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 [持续部署(Continuous Delivery/Deployment)](https://en.wikipedia.org/wiki/Continuous_delivery) 系统进行自动部署。
2014-09-25 17:23:05 +08:00
2019-08-11 18:49:23 +08:00
CI / CD can be achieved by customizing application mirrors with Docker . Developers can build images with [ Dockerfile ] ( . . / image / dockerfile / ) and use [ Continuous Integration ] ( https : //en.wikipedia.org/wiki/Continuous_integration) for integration testing. Operators can deply product environment quickly with this images, even use [Continuous Delivery/Deployment](https://en.wikipedia.org/wiki/Continuous_delivery) for automatic deployment.
2016-11-07 04:00:17 +08:00
而 且 使 用 ` Dockerfile ` 使 镜 像 构 建 透 明 化 , 不 仅 仅 开 发 团 队 可 以 理 解 应 用 运 行 环 境 , 也 方 便 运 维 团 队 理 解 应 用 运 行 所 需 条 件 , 帮 助 更 好 的 生 产 环 境 中 部 署 该 镜 像 。
2014-09-25 17:23:05 +08:00
2016-11-07 04:00:17 +08:00
# # # 更 轻 松 的 迁 移
2014-09-25 17:23:05 +08:00
2016-11-07 04:00:17 +08:00
由 于 Docker 确 保 了 执 行 环 境 的 一 致 性 , 使 得 应 用 的 迁 移 更 加 容 易 。 Docker 可 以 在 很 多 平 台 上 运 行 , 无 论 是 物 理 机 、 虚 拟 机 、 公 有 云 、 私 有 云 , 甚 至 是 笔 记 本 , 其 运 行 结 果 是 一 致 的 。 因 此 用 户 可 以 很 轻 易 的 将 在 一 个 平 台 上 运 行 的 应 用 , 迁 移 到 另 一 个 平 台 上 , 而 不 用 担 心 运 行 环 境 的 变 化 导 致 应 用 无 法 正 常 运 行 的 情 况 。
# # # 更 轻 松 的 维 护 和 扩 展
2018-12-14 19:08:14 +08:00
Docker 使 用 的 分 层 存 储 以 及 镜 像 的 技 术 , 使 得 应 用 重 复 部 分 的 复 用 更 为 容 易 , 也 使 得 应 用 的 维 护 更 新 更 加 简 单 , 基 于 基 础 镜 像 进 一 步 扩 展 镜 像 也 变 得 非 常 简 单 。 此 外 , Docker 团 队 同 各 个 开 源 项 目 团 队 一 起 维 护 了 一 大 批 高 质 量 的 [ 官 方 镜 像 ] ( https : //hub.docker.com/search/?type=image&image_filter=official),既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。
2014-10-03 11:34:57 +08:00
# # # 对 比 传 统 虚 拟 机 总 结
2016-08-04 14:41:40 +08:00
| 特 性 | 容 器 | 虚 拟 机 |
2017-11-24 16:50:25 +08:00
| : -- -- -- -- | : -- -- -- -- | : -- -- -- -- -- |
2016-08-04 14:41:40 +08:00
| 启 动 | 秒 级 | 分 钟 级 |
2017-11-24 12:32:36 +08:00
| 硬 盘 使 用 | 一 般 为 ` MB ` | 一 般 为 ` GB ` |
2016-08-04 14:41:40 +08:00
| 性 能 | 接 近 原 生 | 弱 于 |
2014-10-03 11:34:57 +08:00
| 系 统 支 持 量 | 单 机 支 持 上 千 个 容 器 | 一 般 几 十 个 |