Docker容器实战二(功能组件)

会挽雕弓如满月,西北望,射天狼。这篇文章主要讲述Docker容器实战二:功能组件相关的知识,希望能为你提供帮助。
在深入学习Docker之前,我们有必要先从整体架构层面来对产品做一次了解。下图是Docker的官方架构图,从左至右可以看到依次包含了以下组件:
Docker Client(客户端)
Docker Daemon (服务端)
Docker Images (镜像)
Docker Containers (容器)
Docker Registry (仓库)



这些核心组件构成了Docker的整个技术框架,本篇将对其做初步介绍,并在后续的文章中进行深入讲解。
【Docker容器实战二(功能组件)】

一 .  Docker ClientDocker使用C/S的软件架构,Client端包含了容器管理所需要的命令行工具,通常会与服务端部署在同一台机器上。在日常操作中,我们可以通过命令行的方式,与服务端进行交互。
除了客户端以外,Docker也提供了REST API的方式与服务端进行交互,这通常是在程序代码中使用。


二.  Docker DaemonDocker Daemon可以看做Docker的服务端,它是整个Docker架构的核心组件。Docker Daemon在Linux系统中使用后台服务的方式运行,负责对容器、镜像、网络等对象进行管理。它在接收到客户端的请求后,会根据请求执行对应的操作,并在完成后返回结果。



在功能的实现上,Docker Daemon涉及到与底层模块的交互,其内部机制会比上图所显示的复杂很多。相关细节本文不过多展开讨论,有兴趣的朋友可自行查阅相关资料。


三.  Docker Images如果有使用过VMware虚拟机,会发现里面有一个很有用的功能:模板。在定制好模板后,我们就可以根据模板批量生成虚拟机。
Docker的镜像即有着这样的用途,我们可以将镜像看作是容器的只读模板,当要使用容器时,需提前定制好所需的镜像,然后通过镜像生成容器。

对于镜像的获取有两种方式,一种是使用他人已经封装好的镜像,开箱即可使用。目前Docker的官方仓库有着数量丰富的镜像供使用,包括nginx、mysql、tomcat等常用软件镜像。另外一种则是通过Dockerfile等方式自定义封装,这种方式可以满足我们对镜像的定制化要求,在后面文章会做介绍。


四.  Docker Containers  前文已经介绍过,容器类似系统中一个安全沙箱,可以用来运行和隔离应用。容器是由镜像创建而成,可被看作镜像的运行实例。单个镜像可支持创建多个容器。
Docker提供了一整套对于容器的操作命令,用户可以对容器进行创建、启动、停止等动作。


五. Docker RegistryRegistry做为存放镜像的仓库角色,它可以被部署在企业内部做为私有仓库,也可以部署在互联网做为公共仓库开放使用。
Registry是Docker公司非常实用的创新,使用镜像仓库的好处很明显。当我们需要跨主机部署时,不需要手动将镜像进行拷贝或传输,只需要将镜像上传到仓库保存,即可在其他主机上同时下载镜像,这无疑会大大提升部署的效率。
Docker官方提供的Registry叫Docker Hub,上面提供了大多数常用软件和发行版的官方镜像,还有无数个第三方提供的定制化镜像。此外,企业中基于安全考虑,也会使用自建私有仓库的方式。


----------------------------- End -------------------------------------
专注于Devops运维技术分享,扫码关注公众号,获取更多精彩内容!



    推荐阅读