其他知识点,会在后续学习过程中在做完善。

docker分为两个版本:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  • docker-ee 企业版(付费)
  • docker-ce 社区版(开源免费)

docker架构(docker architecture)分为3个部分:

  1. docker的客户端(client)
  2. docker的服务端(server)
    • docker的守护进程(daemon)
    • docker的容器(container)
    • docker的镜像(image)
  3. docker的镜像仓库(registry)

  不论是Client端还是Server端,都是由docker一个程序提供。

  其中的一个子程序叫做daemon,表示为守护进程。运行daemon此主机就变成了守护进程服务器。

 

镜像(Image): 

对Linux而言: 1.内核启动 2.挂载root文件系统,为其提供用户空间支持。   注:Docker镜像(Image),相当于是一个root文件系统。
Docker 镜像是一个特殊的文件系统: 1.提供了:容器运行时所需的程序、库、资 源、配置等文件, 2.包含了:一些为运行时准备的一些配置参数(如匿名卷、环境 变量、用户等)。 注意:Docker镜像不包含任何动态数据,其内容在构建之后也不会被改变,内容是只读的 1.镜像是怎么构建的? 镜像构建是一层层构建的。前一层是后一层的基础,每一层构建完就不会在发生发改变,后一层上的 任何改变只发生在自己这一层。 2.为什么使用分层存储? 因为镜像包含操作系统完整的root文件系统,其体积庞大,因此在Docker设计时,就充分利用Union FS的技术, 将其实际为分层存储的架构。镜像只是一个虚拟概念,它由多层文件系统联合组成。 3.镜像是否可以复用? 分层存储的特征使得镜像可以复用,使用之前构建好的镜像作为基础层,进一步添加新的层,定制自 己所需的内容,构建新的镜像。 4.构建镜像时需要注意: 镜像构建时,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。

 

容器(container):

  1.容器可以被创建,启动,停止,删除,暂停等。

  2.容器实际是进程,但与直接在宿主机执行的进程的不同,容器进程运行于属于自己的独立的命名空间。

  3.容器内的进程是运行在一个隔离的环境里,使用起来就像是在一个独立于宿主的系统下操作一样。

  4.容器可以拥有自己的root文件系统,网络配置,进程空间,用户ID空间。这种特性使得容器封装的应

     用比直接在宿主运行更加安全。

  5.容器也是分层存储。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,

     这是为容器运行时读写而准备的存储层是容器存储层。

  仓库(registries):

     镜像构建完成后,可以很容易在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像

  我们需要一个集中的存储,分发镜像的服务,Docker registries就是这样的服务。一个Docker registries中

  可以包含多个仓库;每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

    通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应用软件的各个版本,我们可

  以通过<仓库名>:<标签>的格式来指定具体是一个软件哪个版本的镜像,如不给出标签,将以latest作为默认标签。

  以nginx镜像为例,nginx是仓库的名字,其内包含有不同的版本标签,如,1.14,1.17我们可以通过nginx:1.15,

  或者ubuntu:16.04来具体指定所需哪个版本的镜像,如果忽略了标签,比如ubundu,那将视为ubuntu:latest。

    仓库名经常以两段式路径形式出现,比如jwilder/nginx-proxy,前者往往意味着Docker registries多用户

  环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体Docker registries的软件或服务。

    

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄