Docker架构
Docker使用客户端-服务器(c/s)架构模式,使用远程API来管理和创建Docker容器。
Docker容器通过Docker镜像来创建
容器与镜像的关系类似于面向对象编程的对象与类。
Docker | 面向对象 |
容器 | 对象 |
镜像 | 类 |
Docker镜像(images) | Docker镜像是用于创建Docker容器的模板。 |
Docker容器(Container) | 容器是独立运行的一个或一组应用。Docker容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每一个Docker容器都是从Donker镜像创建的。Docker容器可以运行、开始、停止、移动和删除。每一个Docker容器都是独立和安全的应用平台,Docker容器是Docker的运行部分。 |
Docker客户端(Client) | Docker客户端通过命令行或者其他工具使用Docker API (https://docs.docker.com/reference/api/docker_remote_api)与Docker的守护进程通信。 |
Docker主机(Host) | 一个物理或者虚拟的机器用于执行Docker守护进程和容器。 |
Docker仓库(Registry) | Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。 Docker hub(https://hub.docker.com)提供了庞大的镜像集合供使用。 |
Docker Machine | Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、Digital Ocean、Microsoft Azure。 |
Docker采用Docker daemon(守护进程)作为服务端接收来自客户端的请求,并处理这些请求(创建、运行、分发容器)。客户端和服务端既可以运行在一个机器上,也可通过socket或者RESTful API来进行通信。
Docker daemon一般在宿主主机后台运行,等待接受来自客户端的消息。Docker客户端则为用户提供一系列可执行命令,用户用这些命令实现跟Docker daemon交互。