docker 概述
Docker 的构想是实现:“Build,Ship and Run Any App,Anywhere” 即 通过对应用的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)生命周期进行管理,达到应用组件级别的“一次封装,到处运行”,组件可以是Web 应用、一个编译环境或者一套数据库平台、甚至是一个操作系统或群集
IBM关于容器技术描述:容器有效地将由单个操作系统管理的资源划分到孤立的组件中,以更好地在孤立的组之间平衡有冲突的资源使用请求,
与虚拟化相比,这既不需要指令级模拟、也不需要即时编译。容器可以在核心CPU本地运行指令,不需要任何专门的解释机制,更避免了准虚拟化(ParaVirtualization)和系统调用替换中的复杂性
早期Docker 实现是直接基于LXC(LINX 容器),子0.9版本后 Docker 开发了 libcontainer 项目作为容器驱动实现 替换了LXC
使用Docker 开发人员可以使用镜像来快速构建一套标准开发环境
Docker 不需要额外的虚拟化管理程序的支持,Docker 是内核级的虚拟化,可以实现更高的性能,对资源的额外需求低,
Docker 可以在几乎任意的平台上运行(物理机、虚拟机、公有云、私有云、个人电脑、服务器),通知支持主流操作系统
Docker 的三大概念
- 镜像(Image)
只读模板 - 容器(Container)
轻量级沙盒 ,可看作是简易版的Linux 系统环境 - 仓库(Repository)
类似于代码仓库,是Docker 集中存放镜像的位置。