30分钟玩转Docker系列课程1---初识Docker
2015-07-24 13:13
639 查看
Docker是什么:
什么是Docker,我们从Docker官网(https://www.docker.com/)中可以看到是这么描述的:
Docker is an openplatform for building, shipping and running distributed applications. It givesprogrammers, development teams and operations engineers the common toolbox theyneed to
take advantage of the distributed and networked nature of modernapplications.
翻译成中文可以简单的理解成: 通过对应用组件的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)等生命周期的管理,达到应用组件级别的“一次封装,到处运行”
Docker的起源:
起源:
Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司
Docker项目的发起人认为,Docker在正确的地点、正确的时间顺应了正确的趋势---即高效地构建应用。现在开发者需要能方便地创建运行在云平台上的应用,也就是说应用应该必须能够脱离底层机器,而且同时必须是“任何时间任何地点”可获取的,因此开发者们需要一种创建分布式应用程序的方式,这也是docker能提供的
Docker的优势:
Docker是种虚拟化技术,它与传统的虚拟化技术又有怎么样的区别。
Docker引擎的基础是Linux容器(LXC)技术,那什么叫容器,容器就是 有效的将由单个操作系统管理的资源划分到孤立的组中,以便更好地在孤立的组之间平衡有冲突的资源使用需求,容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制
虚拟化技术有以下分类,首先分类为 硬件虚拟化和软件虚拟化,目前业界真正采用硬件虚拟化技术的工具不多,主流为软件虚拟化;其中软件虚拟化又分为以下几类:
1、完全虚拟化:模拟完整的底层硬件环境和特权指令的执行过程如VMWare、VirtualBox、QEMU等;
2、硬件辅助虚拟化:利用硬件(主要是CPU)辅助支持,X86体系结构上包含Intel-VT,和AMD-V)处理敏感指令实现完全虚拟化(Vmware、Xen、KVM)
3、部分虚拟化:针对部分硬件资源进行虚拟化,客户操作系统需要进行修改
4、超虚拟化:
部分硬件接口以软件的形式提供给客户机操作系统,操作系统需修改
5、操作系统级虚拟化:
内核创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,容器相关技术即在这个范畴
Docker容器技术与传统虚拟机技术的特性比较
传统虚拟化方案
Docker虚拟化方案
从上我们可以看到Docker在与传统的虚拟化技术相比,有相当强的优势,传统的虚拟化方案在操作系统上安装一个中间件,类似VMWare客户端,然后再安装操作系统,不够灵活且不能有效的利用资源,而Docker采用操作系统级的虚拟化,可充分利用操作系统的资源,比如运行一个Docker容器,如果没有任何程序在运行,容器内CPU占用率为0,则操作系统中的CPU使用率完全动态体现Docker容器的CPU使用率
而Docker不紧紧只是作为虚拟化技术上的优势,它在开发和运维过程中有无以伦比的优势:
1、更快速的交付和部署
2、更高效的资源利用
3、更轻松的迁移和扩展
4、更简单的更新管理
什么是Docker,我们从Docker官网(https://www.docker.com/)中可以看到是这么描述的:
Docker is an openplatform for building, shipping and running distributed applications. It givesprogrammers, development teams and operations engineers the common toolbox theyneed to
take advantage of the distributed and networked nature of modernapplications.
翻译成中文可以简单的理解成: 通过对应用组件的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)等生命周期的管理,达到应用组件级别的“一次封装,到处运行”
Docker的起源:
起源:
Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司
Docker项目的发起人认为,Docker在正确的地点、正确的时间顺应了正确的趋势---即高效地构建应用。现在开发者需要能方便地创建运行在云平台上的应用,也就是说应用应该必须能够脱离底层机器,而且同时必须是“任何时间任何地点”可获取的,因此开发者们需要一种创建分布式应用程序的方式,这也是docker能提供的
Docker的优势:
Docker是种虚拟化技术,它与传统的虚拟化技术又有怎么样的区别。
Docker引擎的基础是Linux容器(LXC)技术,那什么叫容器,容器就是 有效的将由单个操作系统管理的资源划分到孤立的组中,以便更好地在孤立的组之间平衡有冲突的资源使用需求,容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制
虚拟化技术有以下分类,首先分类为 硬件虚拟化和软件虚拟化,目前业界真正采用硬件虚拟化技术的工具不多,主流为软件虚拟化;其中软件虚拟化又分为以下几类:
1、完全虚拟化:模拟完整的底层硬件环境和特权指令的执行过程如VMWare、VirtualBox、QEMU等;
2、硬件辅助虚拟化:利用硬件(主要是CPU)辅助支持,X86体系结构上包含Intel-VT,和AMD-V)处理敏感指令实现完全虚拟化(Vmware、Xen、KVM)
3、部分虚拟化:针对部分硬件资源进行虚拟化,客户操作系统需要进行修改
4、超虚拟化:
部分硬件接口以软件的形式提供给客户机操作系统,操作系统需修改
5、操作系统级虚拟化:
内核创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,容器相关技术即在这个范畴
特性 | 容器 | 虚拟机 |
启动速度 | 秒级 | 分钟级 |
硬盘使用 | 一般为MB | 一般为GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
隔离性 | 安全隔离 | 安全隔离 |
Docker虚拟化方案
从上我们可以看到Docker在与传统的虚拟化技术相比,有相当强的优势,传统的虚拟化方案在操作系统上安装一个中间件,类似VMWare客户端,然后再安装操作系统,不够灵活且不能有效的利用资源,而Docker采用操作系统级的虚拟化,可充分利用操作系统的资源,比如运行一个Docker容器,如果没有任何程序在运行,容器内CPU占用率为0,则操作系统中的CPU使用率完全动态体现Docker容器的CPU使用率
而Docker不紧紧只是作为虚拟化技术上的优势,它在开发和运维过程中有无以伦比的优势:
1、更快速的交付和部署
2、更高效的资源利用
3、更轻松的迁移和扩展
4、更简单的更新管理
相关文章推荐
- Docker implemented in 100 lines of bash
- Docker安装和初始化配置(入门篇)
- docker的常用命令说明
- Dockerfile 中CMD 和 ENTRYPOINT指令
- linux的docker上如何安装mysql
- ubuntu15.04下安装docker
- ubuntu15.04下安装docker
- ulimit的一些理解和在docker中的经验
- Openstack juno 与 Docker集成(学习笔记,仅供参考)
- Docker私有仓库建立(CentOS7)
- Docker背后的内核知识—Namespace资源隔离
- centos7 安装docker
- Docker基础技术:Linux Namespace(上)
- Docker 101:介绍与入门体验
- Docker 清理命令
- 7月19日Docker&Kubernetes技术沙龙总结 - DockOne.io
- PHP 应用 Docker 开发大礼包 – Powered by DaoCloud
- 快速理解Docker - 容器级虚拟化解决方案
- Docker持续部署图文详解
- CentOS系统下docker的安装配置及使用详解