Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,
然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,
容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器
起源
Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,
源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
Docker 架构
Docker使用客户端-服务器 (C/S) 架构模式,
使用远程API来管理和创建Docker容器。
Docker容器通过 Docker镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类
Docker采用C/S架构Docker daemon作为服务端接受来自客户的请求
并处理这些请求(创建、运行、分发容器)
客户端和服务端既可以运行在一个机器上,
也可通过 socket 或者RESTful API 来进行通信
Docker daemon通常在宿主主机后台运行,
等待接收来自客户端的消息。
Docker 客户端则为用户提供一系列可执行命令,
用户用这些命令实现跟 Docker daemon 交互。