美文网首页
关于Docker技术与架构 - 1(草稿) - 草稿

关于Docker技术与架构 - 1(草稿) - 草稿

作者: 叶JEFFREY | 来源:发表于2019-09-28 14:46 被阅读0次

    微服务架构通过将单体应用分解为一组高内聚低藕合的微服务应用弥补了单体架构在伸缩性、技术异构性、中心化、可靠性等方面的缺陷。近来国内以微服务为基础的服务也有了一些落地,通过使用去中心化的服务,用户能够快速的构建一套属于自己的独立运营的应用。

    由于很多公司业务不断扩展,其原来基于单体架构的软件的扩展变得越来越复杂。由于单体架构往往是将功能、业务集中在一个发布包里并部署运行在同一进程中,所以往往一个业务上的不大的改动将涉及整个系统改动和测试。对人力要求越来越高。随着微服务技术及产品的日趋成熟,越来越多的公司使用微服务架构构建的软件支撑其业务。上面两种架构的示例如下图所示。其中左边为单体架构示例,右边为微服务示例。

    注:示例图取自网络

    在具体实践中微服务常与Docker技术一起使用。可以说在Docker出现之前微服务架构是很难落地的。这是因为微服务需要在一套足够"微小"的相互独立环境中执行。并且微服务可以被快速的构建、销毁、组合与重建。而这些都不是物理机与虚拟机所具备的。Docker技术中对容器的实现正好满足了微服务架构的实现环境。Docker技术通过实现虚拟化技术的容器工具将软件分解为一系列微小的容器。每个容器承载一个服务。一台计算机同时运行多个容器,从而就能很轻松地模拟出复杂的微服务架构。

    什么是Docker?

    Docker是docker.inc公司开源基于LXC技术的开源虚拟容器技术。尽管Docker常和容器联系在一起。但Docker涉及实现虚拟化容器技术的一系列技术,而容器(container)只是其中的一个组件。而容器这个概念在软件设计与架构中无处不在。小到数据结构中的list、map、queue、array到web应用的ejb container、java servlet container到Docker等都涉及容器的应用。

    Docker架构

    Docker的产品架构如下图所示:

    Docker运行架构

    Docker采用CS架构(客户端 - 服务器)。其客户端与服务器端可位于同一台物理机与虚拟机上)。也可以部署在不同的物理机或虚拟机上。客户端与服务器端可通过socket和rest api进行通信。Docker包含以下组件:

    1) Docker daemon( Docker守护进程)

    Docker daemon是一个运行在宿主机( DOCKER-HOST)的后台进程。可通过 Docker客户端与之通信。

    2) Client( Docker客户端)

    Docker客户端是 Docker的用户界面,它可以接受用户命令和配置标识,并与 Docker daemon通信。图中, docker build等都是 Docker的相关命令。

    3) Images( Docker镜像)

    Docker镜像是一个只读模板,它包含创建 Docker容器的说明。它和系统安装光盘有点像,使用系统安装光盘可以安装系统,同理,使用Docker镜像可以运行 Docker镜像中的程序。

    4) Container(容器)

    容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。可通过 Docker API或者 CLI命令来启停、移动、删除容器。

    5) Registry

    Docker Registry是一个集中存储与分发镜像的服务。构建完 Docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时可借助 Docker Registry来避免镜像的手动复制。

    一个 Docker Registry可包含多个 Docker仓库,每个仓库可包含多个镜像标签,每个标签对应一个 Docker镜像。这跟 Maven的仓库有点类似,如果把 Docker Registry比作 Maven仓库的话,那么 Docker仓库就可理解为某jar包的路径,而镜像标签则可理解为jar包的版本号。

    (未完。 持续更新中……)

    相关文章

      网友评论

          本文标题:关于Docker技术与架构 - 1(草稿) - 草稿

          本文链接:https://www.haomeiwen.com/subject/gsdzectx.html