码迷,mamicode.com
首页 > 其他好文 > 详细

Docker架构

时间:2016-02-26 07:04:11      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:docker

Docker架构

为了更好的使用Docker和理解Docker中一些不常见的行为,我们最好了解在Docker表层之下的一些东西。

 

在下面的图片中,我们可以看到Docker安装的主要元件

  1. 中间部分是Docker daemon,负责创建,运行和监控容器,同时构建和存储镜像,Docker daemon通过docker daemon命令来运行,通常由宿主机管理。

  2. Docker client位于右手边,用于和Docker daemon通过HTTP通信,默认情况下这主要是通过Unix domain socket通信,但是也可以使用TCP socket来让远端客户作为系统管理socket。因为所以的事情都可以通过HTTP来完成,也很容易让远端用户连接和使用开发语言来绑定,但是这也有一些实现上的指示。用于和daemon交流的API已经良好的定义和写好了文档,开发者可以直接写程序来与daemon交互而无需使用Docker client。最后,Docker clientdaemon在同一个二进制里面分发。

  3. Docker registries存储和分发镜像。默认的registryDocker Hub,托管了成千上万的镜像。许多组织运行他们自己的registry可以用户存储金融的或敏感的镜像,或者避免了网络拥挤。 以后我们可以试着运行自己的registry Docker daemon会回复docker pull的请求从registry下载镜像。它也会通过docker run请求和Dockerfile中的FROM指令自动下载镜像的,前提是本地没有镜像。

技术分享

底层的技术

Docker daemon使用"execution driver"来创建容器,默认,这是Docker自己的runc驱动,但是也有合法的支持LXC的去掉。Runc与下面的kernel特性联系紧密

  1. cgroups:负责管理被容器使用的资源(例如,CPU和内存使用情况)。他们也可以负责冻结和解冻容器,被用于docker pause功能。

  2. namespace负责隔离容器,确保容器的文件系统,主机名,网络和进程和剩余的系统隔离开来。

  3. UFS用于存储容器的层(layers)UFS提供一个或多个的存储驱动,例AUFS,devicemapper,BTRFS或者Overlay

 

相关的技术

Docker引擎和Docker Hub没有组成一个完成的容器解决方案。许多用户会发现他们需要服务和软件,例如集群管理,服务发现工具和更的高网络性能。Docker Inc计划构建一个完全的开箱即用(out-of-the-box)的方案。也就是可替换电池战略,主要涉及到API的层次,允许元件连接Docker Engine,并且支持Docker 技术打包为一个独立的二进制,来很容易的替换第三方的等价元件。

 

下面包含了一些Docker支持的技术

Swarm Docker集群解决方案。Swarm可以为几个容器分组,允许用户把他们当做统一的资源来用

Compose 是一个工具用来构建和运行由多个Docker容器组成的应用。主要用于开发和测试而不是成产环境

Machine 安装和配置Docker主机在本地或远程资源

Kitematic 用于管理Docker MAC OSwindos GUI

Docker Trusted Registry 目前没开源的产品

 

已经有大量的第三方服务和应用和Docker相处的很好,几个解决方案也已经在下面的领域合并了

 

Networking   Weave  Project Calico

Service discovery Consul, Registrator, SkyDNS,  etcd.

Orchestration and cluster management 

Kubernetes from Google, Marathon (a frame work for Mesos), CoreOSs Fleet, and Dockers own Swarm tooling.

 

当然还有其他各种各样的插件了。



本文出自 “用心做事” 博客,请务必保留此出处http://amyhehe.blog.51cto.com/9406021/1745100

Docker架构

标签:docker

原文地址:http://amyhehe.blog.51cto.com/9406021/1745100

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!