Docker 引擎
Docker Engine 是具有以下主要组件的客户端-服务器应用程序:
- 服务器是一种长期运行的程序,称为守护程序进程(dockerd命令)。
- REST API,它指定程序可以用来与守护程序进行通信并指示其操作的接口。
- 命令行界面(CLI)客户端(docker命令)。
CLI 使用 Docker REST API 通过脚本或直接 CLI 命令来控制 Docker 守护程序或与 Docker 守护程序进行交互。许多其他 Docker 应用程序都使用基础 API 和 CLI 。
守护程序创建和管理Docker 对象,例如图像,容器,网络和卷。
Docker 架构
Docker 使用客户端-服务器架构。Docker 客户端与 Docker 守护进程进行对话,该守护进程完成了构建,运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以 在同一系统上运行,也可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护程序在 UNIX 套接字或网络接口上使用 REST API 进行通信。
Docker daemon
docker daemon 守护进程(dockerd)监听 docker api 请求并且管理 Docker 对象,比如镜像、容器、网络和存储。docker daemon 守护进程也可以和其他守护进程通信一起管理 docker 服务。
Docker client
docker client 客户端(docker)是许多 docker 用户与 docker 交互的主要方式。当使用类似 "docker run"的命令时,docker client 会将这些命令发给 docker daemon ,由 dockerd 进行执行。Docker 客户端可以与多个守护进程通信。
Docker registries
docker register 用于存储镜像。Docker Hub 是一个公有的镜像仓库,docker 默认配置是从 Docker Hub 查找镜像,当然也可以自己配置私有镜像仓库。当使用 "docker pull"、"docker run" 或 "docker push" 命令时,docker 都会从配置的镜像仓库中拉取或推送相关镜像。