## Docker概述
Docker是一个用于构建、分发及运行分布式应用程序的开发平台。组织应用Docker是为了简化并加速他们的应用开发和部署。Docker可以很容易地把分布式应用程序组合成轻量级的应用程序容器,它可以动态地调整而不会中断应用程序并且可以顺场地在开发、测试和生产环境中移植,而这些环境则是运行在一个数据中心或者不同云服务提供者的物理机或虚拟机上。
该平台的核心是Docker Engine,一个轻量级的应用程序运行环境,它也提供了强大的工具来构建、分发和运行Docker应用程序容器。Docker Engine可以安装到任何一个运行LinuxOS的物理机、虚拟机及便携电脑之上或者数据中心里、云服务提供者的服务器上。Docker的容器模型允许多个隔离的应用程序容器运行在同一个服务器上,从而更好地使用硬件资源并且降低行为异常的应用程序对于其他应用程序及物理主机的影响。Docker容器是基于应用程序的映像而创建的,而这些映像是由一个称之为Docker Hub的注册机(registry)负责存储、管理与发布。在Docker Hub上有对Docker用户开放且来自社区和生态系统的公共、私有及官方映像仓库。
[![](https://box.kancloud.cn/2015-11-11_5642a26178d94.jpg)](http://dockerone.com/uploads/article/20151109/0624006e787c53deab12089c73288e85.jpg)
Docker Engine使用客户端-服务器架构。一个Docker客户端与Docker Engine的守护进程通信,该守护进程负责为一个特定的应用程序服务完成构建、分发和运行Docker容器的所有繁重工作。Docker客户端可以是运行的一个命令行工具或者通过DockerAPI集成到第三方应用程序中。客户端和守护进程可以运行在相同的系统中,但是客户端也可以远程地访问DockerEngines。所有客户端与守护进程之间的通讯可以使用TLS进行防护并且借助RESTfulAPI来实现。Docker是使用Go语言开发的,守护进程使用多个库和内核功能来实现它的设计目标。