云计算的热门带火了一批技术名词,“当红炸子鸡”docker就是其中的一个。有着洋名的docker到底是什么,让我们用十个问题让你看懂。
一问:docker是个什么东东?
docker的官方定义是实现轻量级的操作系统虚拟化解决方案。Docker的基础是 Linux 容器(LXC)等技术。
在 LXC 的基础上Docker进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单。
通俗的说,docker可以提供标准化的集装箱(应用及其运行依赖),可以装到任何货轮(Linux操作系统)上面,运到世界各地。
二问:docker这么高大上,看看由什么组成?
docker由镜像,容器和仓库三部分组成。
1、镜像(image):Docker镜像就是一个只读的模板,镜像可以用来创建Docker容器。Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
2、容器( Container):容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境,Docker利用容器来运行应用。
3、仓库:仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前,大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。
图1 docker运行
三问:docker为什么这么火?颜值+气质!
更快速的交付和部署
对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。Docker实现了开发和运维人员的愿望。
更高效的虚拟化
docker容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。
更轻松的迁移和扩展
Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
更简单的管理
使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
四问:docker与容器有什么关系?
Docker准确说是基于OS层的虚拟化,是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack集群和其他的基础应用平台。
由此我们可以看出,Docker并非是容器,而是管理容器的引擎。如果把容器比作标准化的集装箱,而Docker负责打包、操作集装箱。
图2 什么是docker
五问:docker与虚拟化的不同?
容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
传统虚拟化类似于整机柜里面的单台服务器,每个服务器有自己独立的电源模块和风扇;而Docker相当于浪潮的整机柜服务器产品SmartRack,机柜里面所有的节点都没有自己的电源模块和风扇,而是使用机柜统一提供的电源接口和风扇。
图3 传统VM 图4 docker
六问:docker和openstack会有联系吗?
OpenStack通过其组件Nova实现对容器的管理。Nova驱动将会进行扩展,以便用来催生Docker容器。下面是Nova Docker wiki里面提及的架构示意图:
图5 Nova Docker wiki架构图
为了催生容器,Nova计算驱动将指向Docker。Nova DockerVirt驱动使用http api与Docker进行对话Docker镜像保存在Docker Registry中,并且从这里暴露给Glance,Nova将会使用Docker Registry创建容器。
七问:docker与浪潮云海OS之间有摩擦出关系吗?
答案是肯定的,浪潮云海OS能够实现对Docker的管理。小伙伴们,浪潮云海OS能实现在统一界面下,对虚拟机和Docker的异构管理,不需要在虚拟化管理和Docker管理间来回切换操作,对于追求管理效率的boss们来说绝对有吸引力。
八问:docker这么新,敢于吃螃蟹的是哪些人?
docker最先在互连网领域使用,并且应用广。互联网企业业务繁多,开发、运维环境非常复杂,应用部署通常采用分布式架构,后台服务种类较多。互连网业务遇到的这些都是docker最擅长解决的问题。当前,国内外互联网公司已纷纷将docker集成到内部的开发测试流程,并以docker为载体发布应用。
Google早在10多年前就开始使用容器,2014年6月,在DockerCon大会上,Google启动Kubernetes开源项目,Kubernetes是Docker一个精致、可扩展和便携式的管理框架,系统开源后,迅速得到IBM、RedHat、Microsoft、Docker、Mesosphere、CoreOSc等厂商的支持。
九问:docker的应用场景是怎样的?
docker广泛应用于:
应用的快速开发、交付,自动化测试
应用快速迁移及升级
在某些对资源隔离要求宽松的应用场景下可以替代传统的虚拟机应用部署方式
十问:浪潮云海OS虚拟化组件如何实现对docker的管理?
浪潮云海OSInCloudSphere4.O包含两种docker容器部署的功能:
1.支持CoreOS 607.0.0 Linux VM 和配置云配置驱动器
2.面向CoreOS 607.0.0、Ubuntu 14.04、RHEL/CentOS/Oracle Linux 7 的容器管理功能
InCloud Sphere能够识别 VM 中运行的任何 Docker 容器。 iCenter 还能够与容器交互,以允许启动、停止和暂停操作以及其他性能监视和诊断功能。
图6容器管理