Docker的那些事儿—Docker架构讲解(4)

前面安装了docker,通过最简单的例子也直观的感受了docker是怎么玩的。下面我们就来了解下docker的架构是怎么的,都包括那些核心的东西。下图是docker的架构图:


可以看出Docker采用的是C/S架构模式,client负责发送请求,server(daemon)负责处理请求:包括构建、运行、分发docker容器。当然了client和server可以运行在同一个或不同的主机上。两者之间通过REST API或者socket通信。

3-1、Docker相关的主要概念

  • Docker daemon

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进行诸如启动、停止、删除等操作。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值