功能组件

docker客户端

docker daemon

docker容器

docker镜像

registry

--------------------------------------------------------------------------------------------

1.docker客户端

  docker是一个典型的C/S架构的应用程序,在linux系统中,docker的客户端和服务端统一在一个二进制文件中,其它平台上,docker只提供了客户端,

docker客户端一般通过 docker command来发起请求,另外,也可以通过docker提供的一整套RESTfuk API来发起请求(一般应用在应用程序的代码中)

2.docker daemon

  docker daemon是docker的主进程,也可以理解为 docker server,属于docker的核心,作用主要是用来接收docker客户端发来的请求,并实现请求所要求的功能,同时针对请求返回相应的结果。在功能的实现上,因为涉及了容器、镜像、存储等多方面的内容,daemon内部的机制会复杂很多,涉及了多个模块和实现交互

3.docker容器

  在功能上,docker通过libcontainer来实现对容器生命周期的管理、信息的设置和查询,以及监控和通信等功能,而容器也是对镜像的完美诠释,容器以镜像为基础,同时又为镜像提供了一个标准的和隔离的执行环境,简单讲就是一个单独的运行环境

  在概念上,docker容器就是“软件界的集装箱”,它可以安装任意的软件和库文件,做任意的运行环境配置。开发及运维人员在转移和部署应用的时间,不用关心容器里装了什么软件,也不用了解它们是如何配置的。而管理容器的docker引擎同样不用关心容器里的内容,它只要像码头工人一样让这个容器运行起来就可以了,容器不是一个新概念,但是docker在对容器进行封装后,与集装箱的概念对应起来,它之所以被称为“软件界的创新和革命”是因为它会改变软件的开发、部署形态、降低成本、提高效率。

4.docker镜像

  容器提供了一个完整的、隔离的运行环境,那么镜像就相当于还没有启动的运行环境,相对于传统虚拟化镜像中的ISO镜像,docker镜像要轻量化很多,它只是一个可定制的rootfs,docker镜像的另一个创新是它是层级的并且是可复用的,在大多数文件的内容上都是一样的,基于此,当然会希望可以复用它们,而docker做到了。在此类应用场景中,利用unionfs的特性,docker会极大的减少磁盘和内存的开销。

  docker镜像通常是通过dockerfile来创建的,dockerfile提供了镜像内容的定制,同时也体现了层级关系的建立。另外docker镜像也可以通过使用docker mommit这样的命令来手动将修改后的内容生成镜像

5.Registry  

  Registry是一个存放镜像的仓库,它通常被部署在互联网服务器或者云端,通常,集装箱需要通过邮轮经过海洋运输到世界各地。在镜像的传输过程中,Registry就是这个传输的重要中转站。加入我们的公司将一个软件的运行环境制作成镜像,并上传到Registry中,这时就可以很方便的在家中的笔记本上,或者在客户的生产环境上直接从Registry上下载并运行了,当然,对Registry的操作叶是与docker完美融合的,用户甚至不需要知道Registry的存在,只需要通过简单的命令就可以实现上面的操作,docker公司的官方Registry叫docker hub,这上面提供了大多数常用的软件和发行版的官方镜像,由于Registry本身属于一个开源项目,功能相对比较简单,所以一些企业会进行二次开发或者购买功能强大的企业版docker Hub

  

  

  

原文地址:https://www.cnblogs.com/python-cat/p/8446957.html