Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。
1. Docker架构
- Docker_Host:安装Docker的主机
- Docker Daemon:运行在Docker主机上的Docker后台进程
- Client:操作Docker主机的客户端(命令行、UI等)
- Registry:镜像仓库 / Docker Hub
- Images:镜像,带环境打包好的程序,可以直接启动运行
- Containers:容器,由镜像启动起来正在运行中的程序
2. Docker运行的基本流程
1. 用户是使用Docker Client与Docker Deamon建立通信,并发送请求给后者;
2.Docker Deamon作为Docker架构中的主体部分,首先提供Docker Server的功能使其可以接受Docker Client的请求;
3.Docker Engine执行Docker内部一系列工作,每一项工作都是以一个Job的形式存在;
4.Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动Graph driver将下载镜像以Graph的形式存储;
5.当需要为Docker创建网络环境时,通过网络管理驱动Network driver创建并配置Docker容器网络环境;
6.当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成;
7.Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行操作。