Docker容器技术与微服务解决方案.docx
文本预览下载声明
Docker容器技术与微服务解决方案目 录一、前言3二、容器技术简介3三、Docker 简介4四、Docker 的组成5五、Docker 的实现7六、Docker 的生态圈12七、总结13前言Docker 是最近在云计算领域出现的新技术。目前,Docker 和以其为代表的容器技术的热度已经改过了之前的 OpenStack。Docker 以及其所代表的容器技术的流行,即使因为软件技术的进步,更是由于其符合云计算对软件领域所带来新思想。在如今的互联网和企业应用开发领域,微服务和 DevOps 是两个思想颇为深入人心。而 Docker 技术的出现和其对整个容器技术及其生态圈发展的促进,解决了这个微服务和 DevOps 这两个思想实践中的很多难题,使得前面两种思想大规模地实现成为了可能。所以,我们有必要地深入了解一下 Docker 这个技术,看看它会对云计算时代的软件开发产生什么样的影响。本文将介绍如下内容什么是容器技术 什么是 Docker Docker 是如何实现的 为什么要使用 Docker 至于 Docker 的用法,不在这里做介绍。Docker 的入门使用,可以前往 Docker 官网。各种高级用法、技巧、经验,可以前往技术网站 CSDN、InfoQ 和 CoreOS、Centurylink Labs 等这些使用 Docker 的云计算厂商的网站。容器技术简介容器技术有时会被称为轻量化虚拟技术。但不同于基于 Hypervisor 的传统虚拟化技术,容器技术并不会虚拟硬件。容器本身和容器内的进程都是运行在宿主 Linux 系统的内核之上。但与直接运行的进程不同,运行在容器内的进程会被隔离和约束。从而以直接运行的高效实现了虚拟技术的大部分效果。容器技术的历史容器技术并不是一个新鲜事物,早在1979年出现的在 Unix 系统中的 chroot 便是容器技术的雏形。而随后出现的 BSD Jail、Solaris Containers 和 OpenVZ 都算是容器技术的先驱。但容器技术开始普及却是在2007年,这一年 Google 贡献出 cgroups,并且从 2.6.4 开始,Linux 内核包含了这一组件,随后容器技术开始逐渐普及。但容器技术真正大放异彩则要等到2013年 Docker 0.10 版本发布。Docker 简介在 Docker 出现之前,不仅 Google 大量使用容器技术,国内的如淘宝也使用容器技术搭建了自己的应用平台。影响力最大的开源 PaaS 解决方案 CloudFoundry,也在使用自己的容器解决方案 Warden。而 Docker 发布之后,因其极有可能成为未来企业应用、互联网应用和云计算应用的开发、部署的中心角色,所以得到了几乎所有的业界大佬的追捧,Google、VMware、微软、RedHat 等等都已全力推动 Docker 技术的发展。同时,围绕 Docker,出现了一系列以 CoreOS 为代表的新技术。Docker 的出现并非创造了一个新的容器技术,而是在 LXC (LinuX Container)注1、cgroups、namespaces 技术之上所构建的一种技术:Docker 简化了容器的运行:它通过一个简单的命令就能够运行起一个容器docker run [params] [image] [command (optional)] Docker 简化了容器镜像的构建和分发:Docker 提供了Dockerfile和docker commit两种方式构建镜像,并且提供了 Docker image registry 机制以保存和分发镜像 形象地解释打一个比方,集装箱(容器)对于远洋运输(应用运行)来说十分重要。集装箱(容器)能保护货物(应用),让其不会相互碰撞(应用冲突)而损坏,也能保障当一些危险货物发生规模不大的爆炸(应用崩溃)时不会波及其它货物(应用)但是把货物(应用)装载在集装箱(容器)中并不是一件简单的事情。而出色的码头工人(Docker)的出现解决了这一问题。它(Docker)使得货物装载到集装箱(容器)这一过程变得轻而易举。对于远洋运输(应用运行)而言,用多艘小货轮(虚拟机)代替原来的大货轮(实体机)也能保证货物(应用)彼此之间的安全,但是和集装箱(容器)比,成本过高,但适合运输某些重要货物(应用)。Docker 的组成Docker 主要有 Docker Hub 和 Docker 引擎组成。前者是Docker 官方提供的容器镜像仓库;后者运行在宿主机上,可分为服务器端和客户端两部分。服务器端负责构建、运行和分发 Docker 容器等重要工作,客户端负责接收用户的命令和服务程序进行通信。除了这两部分,Dockerfile 也是不得不提的,它虽然不能算作一个独立的组件,但是却是 Dock
显示全部