基本架构
Docker采用了标准的C/S架构,包括客户端和服务端两大部分。客户端和服务端既可以运行在一个机器上, 也可通过socket或者RESTful API来进行容器通信
服务端
Docker daemon一般在宿主主机后台运行,作为服务端接受来自客户的请求, 并处 Docker基本架构理这些请求(创建、运行、分发容器)。在设计上,Docker daemon是一个非常松耦合的架构,通过专门的 Engine模块来分发管理各个来自客户端的任务
客户端
Docker客户端则为用户提供一系列可执行命令,用户用这些命令实现与Docker daemon的交互
sudo docker version sudo docker -H tcp://127.0.0.1:1234
联合文件系统
联合文件系统(UnionFS)是一种轻量级的高性能分层文件系统,它支持将文件系统中的修改信息作为一次提交, 并层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。
Dockerfile
描述镜像的生成规则。Dockerfile中的每一条命令,都在Docker镜像中以一个独立镜像层的形式存在
Image
由Dockerfile生成,呈现层级结构,每层镜像包含:镜像文件以及镜像json元数据信息
Container
是Image的动态运行结果,概括而言,就是在Docker镜像之上,运行进程
镜像分层以及减少镜像的层数的好处
1基本上每个软件都是基于某个镜像去运行的,因此一旦某个底层环境出了问题,就不需要去修改全部基于该镜像的软件的镜像,只需要修改底层环境的镜像。
2这个好处也是最大好处,就是可以共享资源,其他相同环境的软件镜像都共同去享用同一个环境镜像,而不需要每个软件镜像要去创建一个底层环境。
3可以复用,节省磁盘空间,相同的内容只需加载一份到内存。 修改dockerfile之后,再次构建速度快。