首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Docker 在分布式和大数据框架中的应用(1)

Docker 在分布式和大数据框架中的应用(1)

简介Docker 容器技术也是一种虚拟化技术,相比 KVM,VMWare 虚拟机,Docker 实现了一种轻量的虚拟化技术,具有很好的性能和安全性。基于 Docker 可以实现 CaaS(Containers as a Service)微服务架构,一般一个应用程序会提供多个服务,包括内部服务和外部服务,将所有的服务单独用容器包装起来,分别部署和运行,这样简化了整个应用程序维护的复杂度,同时解耦了模块之间的耦合性,便于不同模块单独开发和维护升级。
表 1.Docker 相关的术语 术语  简述  Docker  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。  Docker Container  Docker 容器由 Docker 镜像创建,Docker 容器持有应用程序运行所需要的所有环境。Docker 容器有 run,started,stopped,moved,和 deleted 这几种状态,每一个容器是一个隔离的,安全的应用程序运行平台,Docker 容器是 Docker 运行的组件。  Docker Image  一个 Docker 镜像是一个只读的模板,例如,一个容器可以包含一个 Ubuntu 操作系统和 Apache 程序。一个 Docker 镜像可以用来创建多个 Docker 容器。Docker 提供了简单的方式去编译一个新的 Docker 镜像或者更新一个新的镜像,同时可以从 Docker Registry 下载不同的镜像。 Docker Registry  Docker 仓库是 Docker 官方提供的一个开源程序,用来存储和分发 Docker 镜像。 Docker Hub  Docker 官方提供的公有 Docker Registry。
Docker 解决方案主要体现在如下三个方面:
  • 编译
Docker 允许您用微服务方式组织您的应用程序,而不用担心上线环境和测试环境不一致,并且不用关心运行平台和语言,Docker 镜像是跨平台的,真正实现一次编译,到处运行。
  • 装运
通过 Docker 可以设计应用程序开发,测试,发布的整个周期,并且用统一的用户接口去管理,Docker 提供了两个非常重要的概念,Docker 容器和 Docker 镜像,目前几乎成为企业标准。
  • 运行
Docker 可以部署可扩展的服务,Docker 容器具有很好的隔离性,程序运行在 Docker 容器中更加安全可靠,可以部署运行在各种 Linux X64 平台上。
下面以一个典型的 Web 应用程序为例,来说明 Docker 如何用来发布和运行应用程序。通常 Web 程序包含一个或多个 Apache 程序用来对外提供服务,一个存储模块为 Apache 提供服务,一个数据库服务,之前这些服务都是安装在物理机上,需要在物理机上配置好权限和运行时环境,而且确保不同的程序之间的依赖不存在冲突(比如:不同的程序有可能需要不同 Python 版本)。如果使用 Docker,我们只需要在物理机上安装 Docker,将 Apache 和 Redis 应用放在单独的 Docker 镜像中。Docker 镜像可以用私有 Docker Registry 来存储和分发,Private Docker Registry 可以从 Docker Hub 同步一些镜像,这样 Docker host 在下载 Docker 镜像的时候可以直接从 Private Docker Registry 下载,速度会比较快。数据库这种基础数据服务可以不用放在 Docker 容器里面运行。这样搭建起来的应用程序结构清晰,升级以及管理维护会很简单(只需要更新 Docker Registry 中的 Docker 镜像即可)。
图 1. 程序部署模型
返回列表