Docker 简介
1 | # 官方文档 |
Docker是Docker.lnc公司(前dotCloud,PaaS市场老牌提供商)开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
Docker是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。
由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。
1 | 1. kvm解决了硬件和操作系统之间的依赖。 |
Docker 的三大理念
- 构建,运输,随处运行
- Build,Ship and Run any App,Angwhere
Docker 的应用场景
1 | 1. Web 应用的自动化打包和发布。 |
Docker 的优点
1 | 1、简化程序: |
Docker 能做什么
Docker依赖“写时复制”(copy-on-write)模型,修改应用程序非常迅速,“随心所致,代码即改”
简化配置
1 | 这是Docker公司宣传的Docker的主要使用场景。虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统), |
- 代码流水线(Code Pipeline)管理
1 | 前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。 |
- 提高开发效率
1 | 这就带来了一些额外的好处:Docker能提升开发者的开发效率。 |
- 隔离应用
1 | 有很多种原因会让你选择在一个机器上运行不同的应用,比如之前提到的提高开发效率的场景等 |
- 整合服务器
1 | 正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。 |
- 调试能力
1 | Docker提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。 |
- 多租户环境
1 | 另外一个Docker有意思的使用场景是在多租户的应用中,它可以避免关键应用的重写。 |
- 快速部署
1 | 在虚拟机之前,引入新的硬件资源需要消耗几天的时间。 |
- 小结:一句话说明docker的本质就是: 低开销(系统文件、内存 共用)的虚拟机
Docker 改变了什么
1 | 面向产品:产品交付 |