Docker扩展Beluga、boot2docker-xhyve、Hyper、Speedy介绍

以下为你介绍的Docker扩展都可用在Linux系统上:Beluga(Docker 发布工具)、boot2docker-xhyve(运行于 xhyve hypervisor)、Hyper(基于Hypervisor的Docker引擎)、Speedy(Docker镜像存储系统)。

1、Beluga(Docker 发布工具)

Docker扩展Beluga、boot2docker-xhyve、Hyper、Speedy介绍

Beluga 是一个命令行工具,用来将 Docker 容器发布到单个服务器以及数量不多的服务器群组。

为什么不用 Kubernetes 或者 Mesos?

当前 Docker 不支持多租户环境。

所以不管是 Kubernetes 还是 Mesos 都无法操作 Docker/容器层。

很多实际的问题:

容器根目录与主机根目录相同-卷可以作为容器内的主机根目录进行写入和读取。

Docker没有任何ACL,写入docker.sock == root。

绝对符号链接和符号链接路径组件复制主机目标。

Beluga 不能做什么?

全面的集群管理。

Docker注册表或应用程序管理本身。

Magic服务发现。

基础架构管理。

它如何运作?

运行dockerfile来构建它们。

将它们推送到存储库。

通过ssh连接到服务器时将其Pull。

需求:

A Unix compatible system with RSync

SSH

Docker Compose

Obviously, Docker..

Some love.

下载地址:https://github.com/cortexmedia/Beluga

2、boot2docker-xhyve(运行于 xhyve hypervisor)

让 Boot2Docker 运行于 xhyve hypervisor。

[xhyve][https://github.com/mist64/xhyve] 是 OS X 上基于 FreeBSD/bhyve 的虚拟技术。

boot2docker-xhyve 在 OS X 上让 Boot2Docker 运行于 xhyve。

安装 xhyve:

$ brew install xhyve

安装 boot2docker-xhyve:

$ git clone https://github.com/ailispaw/boot2docker-xhyve

$ cd boot2docker-xhyve

$ make

启动:

$ sudo ./xhyverun.sh

Core Linux:

boot2docker login: 

or:

$ make run

Booting up...

现在 Core Linux 虚拟机已经启动,你可以通过:

$ make ip

获取虚拟机的 ip 地址。

使用 Docker:

如果本机上还没用安装 Docker,你可以:

$ brew install docker

现在通过 "-H" 参数连接到虚拟机中的 docker 服务:

$ docker -H `make ip`:2375 info

如果你使用的是 fish-shell 只是指令格式问题:

docker -H (make ip):2375 info

示例:安装 golang:1.5

docker -H (make ip):2375 pull golang:1.5

下载地址:https://github.com/ailispaw/boot2docker-xhyve

3、Hyper(基于Hypervisor的Docker引擎)

Hyper 是一种 App-Centric 的虚拟化技术,我们完全摒弃了传统虚机上必须和物理机一样,运行一个完整 OS 这种看似显然的假设,我们让Docker Image 直接运行在 Hypervisor 上。我们让一组容器直接启动在 hypervisor 上的时间达到 350 毫秒,并且还在进一步优化。而且所有这些,都是“开箱即得的”。

当然有人会问,有了容器为什么还要虚机。诚然,虚机并不是所有人都需要的,但是,虚机天然具备更好的隔离性;虚拟机也仍然存在于很多企业应用的协议栈中,这样一个依赖更少、开箱即得,而且还带有 Pod、persist mode 等附加丰富特性的应用,是不少场景中都需要的。而我们最期待的,就是去引爆新的容器服务 —— CaaS。

传统虚拟机的问题其实在于过于刻意模仿物理机,刻意要承载完整操作系统,启动一台虚拟机要若干秒,甚至几分钟,Image 有若干GB,加载传播都很慢,但其实根本没有这个必要,Hyper希望兼取两者的强项。

Docker扩展Beluga、boot2docker-xhyve、Hyper、Speedy介绍

Hyper 在启动方面开销很低,即使很入门的机器,也可以有很好的性能,比如在一个小盒子上,里面跑的是超低电压的 i3 CPU,启动所用的时延只有不到500ms。

Docker扩展Beluga、boot2docker-xhyve、Hyper、Speedy介绍

而且 Hyper 的命令行用法和 Docker 很相似,简单到一个 run 命令就可以启动一个 docker image。

Hyper 的实现架构是这样的:

Docker扩展Beluga、boot2docker-xhyve、Hyper、Speedy介绍

在虚机上,引导起 kernel 之后,用 init 进程直接启动 Docker Image,没有完整OS。所有的 image 的处理,在虚拟机外面准备好,插入虚拟机运行。

Docker扩展Beluga、boot2docker-xhyve、Hyper、Speedy介绍

此外,有时,你需要 link 几个密切关联的 docker,这样的时候,hyper 允许你把它们放在一个虚机里面,通过mount namespace隔离文件系统,这称为 pod,这个概念来自于 kubernetes。

下载地址:https://github.com/hyperhq/hyperd

4、Speedy(Docker镜像存储系统)

Docker扩展Beluga、boot2docker-xhyve、Hyper、Speedy介绍

Speedy 是京东公司开发的 Docker 镜像存储系统。上面图片是架构图。

speedy 模块:

Docker Registry Driver:

ChunkMaster

ChunkServer

ImageServer

模块说明:

1]、Docker Registry Driver是一个遵照Docker Registry 1.0协议实现的驱动,完成Docker Registry与后端存储系统的对接工作。

2]、ChunkServer与ChunkMaster组成了一个通用的对象存储服务,ChunkMaster是中心节点,缓存了所有ChunkServer的信息,ChunkServer本身是最终镜像数据落地的存储节点,多个ChunkServer会构成一个组,拥有唯一的组ID,上传这个组内的所有ChunkServer都成功才算成功,下载可以随机选择其中一个节点下载。

3]、ImageServer本身是一个无状态的Proxy服务,它相当于是后面通用对象存储服务的一个接入层,Driver发起的镜像上传/下载操作会直接发给ImageServer, ImageServer里面缓存了ChunkMaster中的存储节点信息,通过这些信息,ImageServer会进行ChunkServer节点的选择操作,找到一组合适的ChunkServer机器完成镜像的上传或下载操作。

下载地址:https://github.com/jcloudpub/speedy

注明

以上就是Docker扩展Beluga、boot2docker-xhyve、Hyper、Speedy的介绍内容,这些Docker扩展都能使用在Linux操作系统中。

栏目相关文章