Docker的那些事儿—Docker架构讲解(4)
2018-02-26 14:30
281 查看
前面安装了docker,通过最简单的例子也直观的感受了docker是怎么玩的。下面我们就来了解下docker的架构是怎么的,都包括那些核心的东西。下图是docker的架构图:
可以看出Docker采用的是C/S架构模式,client负责发送请求,server(daemon)负责处理请求:包括构建、运行、分发docker容器。当然了client和server可以运行在同一个或不同的主机上。两者之间通过REST API或者socket通信。
Docker daemon承担服务器的职责。当Docker安装成功后,默认该部件就启动了。可以使用systemctl statusdocker.service或者service docker status查看。
ps可以观察到有一个常驻的进程:dockerd。实际上这个就是docker daemon的进程。Docker daemon负责监听Docker的API请求并且对docker的对象进行管理,包括镜像、容器、网络等等。另外daemon也可以和其他daemon一起相互协作管理docker服务。这一点我们在后面docker swarm会讲到。
Docker client
Docker client是用户与docker交互的最主要的方式。例如,你在终端敲docker run命令,其实就是client将run请求发送到daemon进行处理。Docker拥有丰富的命令集合,每个命令又含有丰富的子命令。当你敲击docker --help你会看到长达几十个命令。
Docker registries
Docker registry是用来存储docker镜像的仓库。Docker Hub和Docker Cloud提供了公有仓库,上面有丰富的镜像资源供用户下载使用。当使用dockerrun ubuntu或者docker pull ubuntu默认是去Docker Hub下载镜像。当然,出于对网速和安全的考虑,用户也可以构建自己的私有仓库,然后就可以从私有仓库下载镜像或者上传镜像到私有仓库。
Docker images
Image是docker的基石,是一个可运行的基本单元。image是只读的,包括container运行所需要的数据,主要用来创建container。实际上image是由一层层的文件系统组成的,这种层级的文件系统称为UnionFS。 Docker image来源:
(1)可以基于Dockerfile从无到有的构建;
(2)也可以基于Dockerfile从已有的image创建新的image;
(3)也可以基于容器生成新的image;
(4)甚至也可以直接下载别人的image。
Docker containers
Container是由image实例化来的,这就类比于面向对象中class和object的关系。Container类似于虚拟机,我们可以把它看做精简版的Linux+运行于其中的app。当然我们也可以对container进行诸如启动、停止、删除等操作。
可以看出Docker采用的是C/S架构模式,client负责发送请求,server(daemon)负责处理请求:包括构建、运行、分发docker容器。当然了client和server可以运行在同一个或不同的主机上。两者之间通过REST API或者socket通信。
3-1、Docker相关的主要概念
Docker daemonDocker daemon承担服务器的职责。当Docker安装成功后,默认该部件就启动了。可以使用systemctl statusdocker.service或者service docker status查看。
ps可以观察到有一个常驻的进程:dockerd。实际上这个就是docker daemon的进程。Docker daemon负责监听Docker的API请求并且对docker的对象进行管理,包括镜像、容器、网络等等。另外daemon也可以和其他daemon一起相互协作管理docker服务。这一点我们在后面docker swarm会讲到。
Docker client
Docker client是用户与docker交互的最主要的方式。例如,你在终端敲docker run命令,其实就是client将run请求发送到daemon进行处理。Docker拥有丰富的命令集合,每个命令又含有丰富的子命令。当你敲击docker --help你会看到长达几十个命令。
Docker registries
Docker registry是用来存储docker镜像的仓库。Docker Hub和Docker Cloud提供了公有仓库,上面有丰富的镜像资源供用户下载使用。当使用dockerrun ubuntu或者docker pull ubuntu默认是去Docker Hub下载镜像。当然,出于对网速和安全的考虑,用户也可以构建自己的私有仓库,然后就可以从私有仓库下载镜像或者上传镜像到私有仓库。
Docker images
Image是docker的基石,是一个可运行的基本单元。image是只读的,包括container运行所需要的数据,主要用来创建container。实际上image是由一层层的文件系统组成的,这种层级的文件系统称为UnionFS。 Docker image来源:
(1)可以基于Dockerfile从无到有的构建;
(2)也可以基于Dockerfile从已有的image创建新的image;
(3)也可以基于容器生成新的image;
(4)甚至也可以直接下载别人的image。
Docker containers
Container是由image实例化来的,这就类比于面向对象中class和object的关系。Container类似于虚拟机,我们可以把它看做精简版的Linux+运行于其中的app。当然我们也可以对container进行诸如启动、停止、删除等操作。
相关文章推荐
- Docker容器技术-基础与架构
- 从自身漏洞与架构缺陷,谈Docker安全建设 - PaaS云
- Docker的架构特性与局限
- Docker Daemon的架构
- 结合丰富示例深入讲解Ajax架构和最佳实践——《深入Ajax:架构与最佳实践》
- Docker1 之 Docker 基本概念与架构
- Docker Swarm架构、特性与基本实践
- 【原创译文】基于Docker和Rancher的超融合容器云架构
- Docker+.Net Core 的那些事儿-3.创建容器并运行
- 前端架构那些事儿
- 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用讲解
- iOS—— Architectures架构精简讲解
- Docker的那些事儿—Docker简介(1)
- 大数据架构开发 挖掘分析 Hadoop HBase Hive Flume ZooKeeper Storm Kafka Redis MongoDB Scala Spark 机器学习 Docker 云计算
- 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)
- 使用Springcloud及Docker实现微服务架构
- 使用Springcloud及Docker实现微服务架构
- 利用SpringCloud和Docker搭建普通互联网应用架构
- paas架构之docker——镜像管理
- 基于Docker的CaaS容器云平台架构设计