Docker基本组成

Docker Client(客户端)/Docker Daemon(守护进程)

  1. C/S架构的程序,docker客户端向docker的服务器端(守护进程)发出请求,守护进程处理完所有的工作,并返回结果

客户端对服务器端的访问既可以在本地也可以在远程来访问。

docker组成 

Docker Image(镜像)

1、理解一:镜像是docker容器的基石、容器基于镜像启动和运行,镜像就好比容器的源代码,保存了用于启动容器的各种条件。

2、理解二:层叠的只读文件系统,最低端是一个引导文件系统(bootfs),docker用户几乎永远不会和引导文件系统有交互,实际上当一个容器启动后,他将会被移动到内存中,而引导文件系统则会被卸载。Docker镜像的第二层是rootfs文件系统,位于引导文件系统之上,rootfs文件系统可以是一种或者是多种的操作系统(cenos,Ubuntu),rootfs永远只能是只读状态,并且docker利用联合加载技术(一次同时加载多个文件系统)又会在rootfs之上加载更多的只读文件系统,将这样的文件系统称为Docker Image(镜像)。

一个镜像可以放在另一个镜像的顶部,位于下面的镜像称为负镜像,可以以此类推直到镜像栈的最底部,最底部的镜像称为基础镜像,也就是rootfs文件系统。

Docker Container(容器)

  1. 通过镜像来启动,docker的容器是docker的执行单元,容器中可以运行客户的一个或者多个进程,如果说镜像是docker生命周期中的构建和打包阶段,那么容器则是启动和执行阶段。
  2. 容器是怎么通过镜像来启动的呢?

 

当一个容器启动时,docker会在该镜像的最顶层加载一个读写文件系统,也就是一个可写的文件层,我们在docker中运行的程序,就是在这个层中进行执行的,当docker第一次启动一个容器时,初始的读写层是空的,当文件系统发生变化时,这些变化都会应用到这一层上,比如:如果想修改一个文件,首先这个文件会从该读写层的下面拷贝到该读写层,该文件的制度版本依然存在,但是已经被该读写层的文件副本所隐藏,这就是docker中的一个重要的技术-写时复制(copy on write)每个只读镜像层都是只读的并且永远不会发生变化,当创建一个新容器时,docker会构建一个镜像栈(如上图所示),在栈的最顶层添加可写层,这个读写层+下面的镜像层+配置数据=容器。容器的这种特点+镜像分层框架可以使我们快速构建镜像,并运行包含我们自己的应用程序和服务的容器。

Docker Registry(仓库)

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

 

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值