您的位置:首页 > 运维架构 > Docker

GIS+=地理信息+容器技术(2)——Dockers技术介绍

2016-03-09 09:09 761 查看
--------------------------------------------------------------------------------------

Blog:    http://blog.csdn.net/chinagissoft

QQ群:16403743

宗旨:专注于"GIS+"前沿技术的研究与交流,将云计算技术、大数据技术、容器技术、物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案

转载说明:文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

--------------------------------------------------------------------------------------

如今,Docker越来越在IT界深入人心,其实我们应该感谢它的前身,dotCloud,一家专注于PaaS的云平台公司。我们可以访问它的官网去了解更多:https://www.dotcloud.com/

那么Docker是如何实现?

首先,最早的容器技术是基于Linux的LXC,随着技术的不断发展,使用libcontainer来代替LXC,由于libcontainer是使用go语言编写的,而Dockers就是基于go语言开发的,所以Docker现在与容器有天然的结合,随着Docker的不断发展,相信Google也会在go语言的推广方面更上一个台阶。

不过最为关键就是Docker采用aufs文件系统来管理镜像和容器。

AUFS

所谓AUFS(Advanced multi layer unification filesystem),也称之为高级的多层的联合文件系统,它可以实现多个不同的目录的内容合并在一起,而且实现Read-Only和Read-Write目录的共存。



例如,这是一个Docker运行实例,那么桔黄色部分就是我们所说的Root FS,红色的部分为可写,蓝色的为只读,该容器可以共享Fa和Fb,当然也可以将扩展属于自己的Fc,这种机制特别适合于共享同一个文件基础,每一个在该文件基础的运行实例还包括自己的文件信息。

Docker如何使用aufs



Docker使用aufs来实现分层的文件系统的管理,对于Docker来说有两个概念,镜像和容器,一般情况下熟悉虚拟化的朋友也应该比较好理解,镜像和虚拟机实例。一般情况下,镜像我们认为是只读的,而容器我们认为是可写的。

例如上图,该宿主OS里面包含两个容器,桔黄色容器和蓝色容器,桔黄色容器为例,该容器是从一个busybox的镜像生成的,在该镜像基础上添加了自己的内容,构建了当前桔黄色容器的状态。当然我们也可以将当前状态也生成一个镜像,就好比蓝色容器的emaces镜像和Apache镜像。

所以Image类似一个单链表系统,每一个Image包含一个指向Parent image的指针,如果没有了Parent Image的镜像其实就是Os的Kernel了。

Docker的局限性

当然,Docker技术还是一个新技术,还有很多局限性需要注意:

1、它只能给予Linux64,不支持32位,当然这个条件对于遍地64位环境来说并不是多大的局限。

2、目前Docker的宿主机OS还只能是Linux,当然也听说Windows 2016 Server也支持容器,也非常期待。

3、Docker的隔离性方面相比较KVM等虚拟化技术还有所欠缺

4、容器采用Cgroup和Resource control 对于CPU度量比较难,所以一般公共环境的度量往往采用内存指标

5、Container是随着用户进程的停止而销毁的

Docker的发展方向



关于Docker的发展方向,通过这一张图可以看到,Docker急需在网络(两个小乌龟打电话),安全(锁),以及容器引擎方面进行完善。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息