Docker的架构介绍及部署实战

                Docker的架构介绍及部署实战

                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.Docker架构分析

  如下图所示,Docker采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。

  客户端和服务器可以运行在同一个 Host 上,客户端也可以通过socket或 REST API与远程的服务器通信。

1>.Client

  Docker客户端,最常用的Docker客户端是docker命令。通过docker我们可以方便地在Host上构建和运行容器。
      
  docker支持很多操作(docker命令行工具),用户也可以通过REST API与服务器通信。   
  Client和Docker daemon通信可使用https
/http协议进行通信,为了安全起见,默认使用的就是https协议。

2>.Docker-Host

  Docker daemon:  
    Docker daemon是服务器组件,即Docker守护进程服务器,以Linux后台服务的方式运行。
    Docker daemon运行在Docker host上,负责创建、运行、监控容器,构建、存储镜像。默认配置下,Docker daemon只能响应来自本地Host的客户端请求。如果要允许远程客户端请求,需要在配置文件中打开TCP监听(支持IPV4和IPV6)。
        
  Containers:   
    Docker容器,用于加载Docker镜像。换句话说,Docker容器就是Docker镜像的运行实例。我们知道镜像(Image)是只读的,在启动一个Container时,其实就是基于Image来新建一个专用的可写仓供用户使用。
        
  Image:   
    可将Docker镜像看成只读模板(它类似于虚拟机使用的ISO镜像文件),通过它可以创建Docker容器。例如某个镜像可能包含一个Ubuntu操作系统、一个Apache HTTP Server以及用户开发的Web应用。
    镜像有多种生成方法:
      (1)可以从无到有开始创建镜像;
      (2)也可以下载并使用别人创建好的现成的镜像
      (3)还可以在现有镜像上创建新的镜像
      (4)我们可以将镜像的内容和创建步骤描述在一个文本文件中,这个文件被称作Dockerfile,通过执行docker build <docker-file>命令可以构建出Docker镜像。
    公开的镜像仓库有很多种,如下所示: 
      Docker官方镜像地址:
        https://hub.docker.com/。
      阿里的docker镜像地址:
        https://mirrors.aliyun.com/docker-ce/linux/
      清华大学docker镜像地址:
       https://mirrors.tuna.tsinghua.edu.cn/docker-ce/

  温馨提示:
    生产环境中,我们通常在公司内部部署有私有镜像仓库。如使用Harbor,Docker Registry等等。在后续的文章我们会逐一对其进行讲解。

3>.Registry

  我们去构建镜像时,镜像做好之后应该有一个统一存放位置,我们称之为Docker仓库,Registry是存放Docker镜像的仓库(官方默认仓库在"https://hub.docker.com"),Registry分私有和公有两种。
        
  Images和Registry之间默认使用的时https协议,当然如果你非要指定为http协议也是可以的。  
  启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,其将从Registry中下载该镜像并保存到本地。  
  Registry用于保存docker镜像,包括镜像的层次结构和元数据。用户可自建Registry,也可使用官方的Docker Hub。  
  Docker Registry中的镜像通常由开发人员制作,而后推送至
"公共""私有"Registry上保存,供其它人员使用,例如"部署"到生产环境。
  Docker Registry可分为以下几类:         Sponsor Registry:       第三方的registry,供客户端和Docker社区使用。         Mirror Registry:       第三方的registry,只让客户使用。         Vendor Registry:       由发布Docker镜像的供应商提供的registry。         Private Registry:       通过设有防火墙和额外的安全层的私有实体提供的registry。  
  Registry包括Repository和Index,详细说明如下:         Repository:             由某特定的docker镜像的所有迭代版本组成的镜像仓库;       一个Registry中可以存在多个Repository:                 Repository可分为
"顶层仓库""用户仓库";                 用户仓库名称格式为"用户名/仓库名"。               每个仓库可以包含多个Tag(标签),每个标签对应一个镜像;         Index:             维护用户账户,镜像的校验以及公共命名空间的信息;             相当于为Registry提供了一个完成用户认证等功能的检索接口。

 

二.Docker环境部署实战

 

三.

 

 

posted @ 2020-11-22 23:23  JasonYin2020  阅读(585)  评论(0编辑  收藏  举报