Docker技术:快速上手教程

2017-04-20 by subond

本文目录:

1.构建容器-Containers

Dockerfile将定义容器中环境的内容。通过将访问资源(例如,网络接口和磁盘驱动器)进行虚拟化处理,实现与宿主机系统的隔离。为此,我们需要将端口映射到外部宿主系统环境中,并说明将要把那些文件“复制”到隔离的环境中,即容器。这样之后,我们就可以期望在Dockerfile中定义的应用程序可以在任何地方运行。

Dockerfile

创建一个新的空目录,在目录下创建名为Dockerfile的文件,并写入以下内容。

# Use an official Python runtime as a base image
FROM python:2.7-slim

# Set the working directory to /app …
read more

Docker技术:Dockerfile的定义与使用

2017-04-18 by subond

Dockerfile是Docker用来构建镜像的文本文件,包括自定义指令和格式。命令docker build可以与Dockerfile文件中构建我们自己需要的镜像。

read more

Docker技术:Docker系统架构

2017-04-16 by subond

本文目录:

Docker Engine

Docker Engine主要包含三个组件,如下图所示:

  • Docker Server:一个长时间运行的守护进程。
  • REST API:指定程序可以用来与守护进程通信的接口。
  • Client:命令行CLI客户端。

Docker全局预览

CLI利用脚本或直接输入命令的方式,通过REST API与Docker Daemon(守护进程)进行通信,并完成相关操作。Docker Damemon是负责容器对象的主体,例如镜像,容器实例,网络管理以及数据卷等。

Docker交付内容

  • 快速,一致地交付应用程序

Docker允许开发人员通过提供本地容器标准化环境,从而简化应用程序和服务的开发生命周期。容器可以适用于连续集成和持续开发的工作流程。Docker的便携性和轻量级性质使得轻松实现动态管理工作负载,按照业务需求来实现扩展或拆除应用程序和服务

  • 在同一硬件上可允许多个工作流程

Docker重量轻,速度快。它为基于虚拟机管理程序的虚拟机提供了可行的,具有成本效益的替代方案,因此可以使用更多的计算能力来实现业务目标。Docker是高密度环境和中小型部署的理想选择,您需要用更少的资源来做更多的事情。

Docker系统架构

Docker采用Client/Server架构模式,其系统架构如下图所示 …

read more

Docker技术:认识Docker

2017-04-14 by subond

Docker是使用Go语言进行开发实现,基于Linux内核的cgroup, namespace, 以及AUFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其他隔离的进程,因此成为容器。

read more

Dynamo分布式键值系统

2017-04-09 by subond

分布式键值模型是分布式表格模型的一种特例,一般只支持单个key-value的“增、删、查、改”操作,因此适用 哈希分布算法。Amazon Dynamo是分布式键值系统,学习Dynamo的设计思想,设计原则,对理解分布式系统理论很有帮助。

read more

GFS分布式文件系统

2017-04-06 by subond

分布式文件系统主要有两个功能:一个是存储文档,图像,视频之类的Blob类数据;一个是作为分布式表格系统的持久化层。分布式文件系统中最著名的就是Google File System(GFS),因此,本章通过介绍GFS的内部实现机制来学习分布式文件系统的知识与设计。

read more

深入理解Paxos算法

2017-03-21 by subond

Paxos算法是Leslie Lanmport(2013年获图灵奖)在1990年提出的一种基于消息传递的共识算法(也称为,一致性算法),由于算法难以理解并没有被ACM TOCS发表。直到1998年,才引起人们的注意,Lanmport重新发表文章。为了便于人们通俗地理解Paxos算法,Lanmport于2001年简化原来的文章,发表了Paxos Made Simple,文章循序渐进地推导出了Paxos算法,并用数学归纳法进行了证明。在此基础上,本文结合Paxos Made Simple,与其他优秀的Paxos算法解读,重新描述Paxos协议,希望可以深入理解基本的Paxos算法理论。

read more

初识Open Source MANO

2016-12-03 by subond

Open Source Management and Orchestration (MANO),简称Open Source MANO,即OSM,是一个开源社区,旨在为NFV提供满足商用NFV网络需求的生产质量(production-quality)的MANO软件堆栈,具有创建商用公开发布信息的模型能力,适用于所有所有人,适用于所有的VNFs(虚拟网络功能),而且更重要的是,小操作与VIM(Virtual Infrastructure Management,虚拟基础设施管理)无关。OSM与NFV ISG信息模型保持一致,同时能够根据其实施经验提供第一手的反馈。

read more

云端服务管理工具:Juju

2016-11-10 by subond

Juju是Canonical公司提供的服务编排工具。它是Ubuntu云套件的一部分,与Ubuntu服务器、OpenStack、用于裸机配置的MAAS 、以及用于系统管理和监控的Landscape一起组成Ubuntu云套件。同时,Juju也是 开源的,向用户提供一种面向服务的架构(service oriented architecture)和面向应用的部署(application oriented deployments)的通用模型。Juju可以对云端的服务进行快速可靠的部署,包括拓展云端业务,因此管理员可以很容易地部署Wordpress博客系统,MongoDB大系统管理系统、Mysql数据系统等。目前Juju具有1.25(稳定版)和2.0(升级版),用户可以自行选择。关于Juju的安装比较简单, 可以参考官网教程。Juju为用户提供了命令行和图形化界面两种方式来进行业务部署,其图形化界面称为"juju-gui"(可利用juju部署到本地系统,juju deploy juju-gui)。

read more

机器学习之Weka学习-Evaluation类介绍

2016-07-03 by subond

Evaluation类顾名思义,用来评价各种分类器(包括机器学习模型)的性能。Weka中有两个Evaluation类,分别位于weka.classifiers.evaluation.Evaluation和weka.classifiers.Evaluation 而且这两个类定义了同样的接口,其中evaluation包下的Evaluation类就是把所有的操作交给classifier包下的Evalution类来完成,也许为了能够适配旧版本已经编写的代码,就保留了classifier包下的 Evalution类,我们暂且不需要即可。下面我们就介绍weka.classifier.Evaluation类。

read more