(二)docker的基本组成

1.docker的组成

1.docker client 客户端

        docker是C/S架构的程序,docker客户端向docker服务器端(即docker的守护进程)发出请求,守护进程处理完所有的工作并返回结果,客户端对服务器端的访问即可以是本地也可以通过远程来访问

        如图,我们通过客户端执行各种命令,客户端会将命令发送给守护进程,守护进程执行的结果还可以传回客户端,这样我们就能在客户端查看命令执行的结果

2.docker daemon 守护进程

3.docker image 镜像

        镜像是docker容器的基石,容器是基于镜像启动和运行的。镜像就好比容器的源代码,保存了用于启动容器的各种条件。深入一层理解docker的镜像,docker镜像是层叠的只读文件系统,最底端是个引导文件系统(即bootfs),这很像典型的linux的引导文件系统,docker用户几乎永远不会和引导文件系统有交互,实际上,当一个容器启动后,它将会被移到内存中,而引导文件系统则会被卸载。docker镜像的第二层是root文件系统,它位于引导文件系统之上,root文件系统可以是一种或多种的操作系统,比如Ubuntu或者centos。在传中的linux引导过程当中,root文件系统会最先以只读的方式加载,当引导结束并完成了完整性检查后,它才会被切换为读写模式。但在docker中,root文件系统永远是只读状态,并且docker利用联合加载技术(union mount),又会在root文件系统之上,加载更多的只读文件系统,联合加载指的是一次同时加载多个文件系统,但是在外围看起来,只会看到一个文件系统,联合加载会将各层文件系统叠加在一起,这样最终的文件系统会包含所有的底层文件和目录。docker将这样的文件系统成为镜像,一个镜像可以放到另一个镜像的顶部,位于下面的镜像称为父镜像,依次类推,直到镜像占了最底部,最底部的镜像称为基础镜像,也就是图中的镜像栈的root文件系统

4.docker container 容器

        容器通过镜像来启动,docker的容器是docker的执行单元,容器中可以运行客户的一个或多个进程,如果说,镜像是docker生命周期中的构建和打包阶段,那么容器是启动和执行阶段。那么,容器是怎么通过镜像来启动的呢,当一个容器启动时,docker会在该镜像的最顶层加载一个读写文件系统,也就是一个可写文件层,我们在docker中运行的程序就是在该层中执行的。当docker第一次启动一个容器时,初始的读写层是空的,当文件系统发生变化时,这些变化都会应用到这一层上。比如,如果想修改一个文件,这个文件会从读写层下面的只读层复制到读写层,该文件的只读版本依然存在,但是已经被读写层中的副本所隐藏,这就是docker中的一个重要技术-写时复制(copy on write)。每个只读镜像层都是只读的,并且以后永远不会变化,当创建一个新容器时,docker会构建出一个镜像栈,就像图中所表现的,在栈的最顶层添加可写层,这个读写层加上下面的镜像层以及一些配置数据,就构成了一个容器。容器的这种特点加上镜像分层框架使得我们可以快速地构建镜像并运行包含我们自己的应用程序和服务的容器。

5.docker registry 仓库

        docker用仓库来保存用户构建的镜像,仓库分为公有和私有两种,docker公司自己提供了一个公有的仓库(Docker Hub),我们可以到Docker Hub上去注册账号,分享并保存自己的镜像。目前,Docker Hub上已经有了非常丰富的镜像,所以我们也可以通过Docker Hub来查找我们需要的镜像,为我们节省很多构建镜像的时间,当然,我们也可以架设自己私有的仓库。

2.总结

        我们通过docker的客户端访问docker的守护进程,从而操作docker的容器,而容器是通过镜像来创建的,而镜像又保存在仓库中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bigbear776

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值