Docker基本组成
Docker的基本组成有:
镜像 image
容器 comtainer
仓库 repository
镜像 image
Docker镜像image是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建多个容器
docker镜像文件类似于Java的类模板,而docker容器实例类似于java中的new出来的实例对象
容器container
Docker利用容器独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器类似一个虚拟的运行环境,容器是用镜像创建的运行实例
可以把容器看作是一个简易版的Linux环境(包括root用户权限,进程空间,用户空间和网络空间)和运行在其中的应用程序
仓库Repository
仓库是集中存放镜像文件的场所
最大的仓库是https://hub.docker.com
Docker的简易架构
docker进程看本地有没有image,有的话就根据image创建containers
如果没有就从仓库垃取
Docker工作原理
Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端的访问,守护进程从客户端接受命令并管理运行在主机上的容器
客户端通过Docker守护进程对容器进程操作
Docker运行的基本流程:
- 用户使用Docker Client与Docker Daemon建立通信,并发送请求给后者
- Docker Daemon作为Docker架构中的主体部分,包含Docker Server和Docker Engine,首先提供Docker Server的功能使其可以接受Docker Client的请求
- Docker Engine执行Docker内部的一系列工作,每一项工作哦都市以一个Job的形式存在
- Job的运行过程中,当需要镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动Graph driver将下载镜像以Graph的形式存储
- Docker容器可以理解为一个小型的Linxu环境,当需要为Docker创建网络环境时,通过网络管理驱动Network driver创建并配置Docker容器网络环境
- 当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成
- Libcontainer是一个独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行操作。